如何从要编入索引的document&#39字段本身的值中指定@ Document的索引名称

时间:2016-05-25 12:32:51

标签: java spring spring-boot spring-annotations spring-data-elasticsearch

假设我有两个名为StandardStudent的班级。 Student class“的实例具有对Standard实例的引用。 Student的依赖关系为Standard

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

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

现在我需要以Student的index-name应为Standard.getId()的方式索引对象Student

@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;
}

Standard就像一个唯一的标识符,它将所有正在阅读该标准的类似@Students组合在一起。请告知是否可以在运行时声明文档名称,这只是该文档本身的字段。

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

更新:我的目的是什么?

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

0 个答案:

没有答案