我正在使用Spring boot和elasticsearch(& spring-data-elasticsearch)构建一个应用程序。
我有一个实体用户,其中包含一个区域列表(即每个用户负责一组区域)。
我有另一个与区域相关联的实体报告(即每个报告都有一个区域)
我想为每个用户创建报告索引。这样每个索引只包含用户负责的区域的报告。
这样,当用户搜索报告时,搜索仅应用于他的索引。
此外,这些索引必须是动态的(即如果用户的区域被更改,或者添加了新的报告,则更新)。
我怎样才能做到这一点? 谢谢你的帮助
答案 0 :(得分:0)
为什么不以这种方式为用户建模,以便将用户相关信息存储在一行(文档)中,我认为嵌套字段是个好主意,可以使用嵌套查询进行搜索,这样,
例如,每个用户负责一组区域,因此区域可以嵌套在用户中,因为区域嵌套它们将作为单独的文档存储
@Field(type=FieldType.Nested)
private Set<Regions> regions;
其次,我不认为每次建立一个新的指数是个好主意