Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何指定@Document';从文档';s字段本身将被索引_Java_Spring_Spring Boot_Spring Annotations_<img Src="//i.stack.imgur.com/A3TTx.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">spring Data Elasticsearch - Fatal编程技术网 spring-data-elasticsearch,Java,Spring,Spring Boot,Spring Annotations,spring Data Elasticsearch" /> spring-data-elasticsearch,Java,Spring,Spring Boot,Spring Annotations,spring Data Elasticsearch" />

Java 如何指定@Document';从文档';s字段本身将被索引

Java 如何指定@Document';从文档';s字段本身将被索引,java,spring,spring-boot,spring-annotations,spring-data-elasticsearch,Java,Spring,Spring Boot,Spring Annotations,spring Data Elasticsearch,假设我有两个类,分别名为Standard和Student。学生类的实例“引用了标准的实例”学生依赖于标准 public class Student{ @id private String id; private String name; private Standard standard; } public class Standard{ @Data @id private String id; } 现在我需要索引对象Student,这样Student的索引名应该是标准的.ge

假设我有两个类,分别名为
Standard
Student
学生
类的实例“引用了
标准
的实例”<代码>学生依赖于标准

public class Student{
 @id
 private String id;
 private String name;
 private Standard standard;
}

public class Standard{
 @Data
 @id
 private String id;
}
现在我需要索引对象
Student
,这样
Student
的索引名应该是标准的.getId()

Standard
就像一个唯一的标识符,它将阅读该标准的所有相似@学生分组。请告知是否可以在运行时声明文档名称,该名称只不过是该文档本身的字段

当我在该标准索引中搜索任何学生的名字时,它将只在该索引名称中搜索多个。同一学生的名字可以在多个标准\类中读取

更新:我的目的是什么?


我这样做是为了限制搜索并获得快速搜索。如果我对学校的学生只有一个索引,并且我正在按姓名和标准/班级搜索特定的学生,那么可能需要很长时间才能回复。因此,我想创建一个标准级别的索引,以便搜索速度更快。实际上,在班级中搜索一个学生比在整个学校中搜索更容易。如果我错了,请纠正我。

我觉得你的解决方案很奇怪。首先,为什么要为每个标准id定义索引?你的目的是什么?例如,通过只使用一个索引,就可以检索正在阅读特定标准的所有学生。也可以将学生的姓名添加到该查询中。这就是你想要的吗?@Neman我这样做是为了限制搜索,并获得快速搜索。如果我对学校的学生只有一个索引,并且我正在按姓名和标准/班级搜索特定的学生,那么可能需要很长时间才能回复。因此,我想创建一个标准级别的索引,以便搜索速度更快。实际上,在班级中搜索一个学生比在整个学校中搜索更容易。如果我错了,请纠正我。谢谢,你好。我会使用一个索引。这种东西就是ElasticSearch的目的,只需使用
Standard.id
作为过滤器,而不是普通的搜索词,就可以获得更好的性能,并且不会影响分数。即使有数以百万计的学生,我也认为一个索引没有问题。。
@Document(indexName = ${Standard.getId()}, type = "section", shards = 1, replicas = 0)
public class Student{
 @id
 private String id;
 private String name;
 private Standard standard;
}

public class Standard{
 @Data
 @id
 private String id;
}