在ElasticSearch中查询和返回子文档/嵌套对象

时间:2018-07-02 11:29:12

标签: elasticsearch nest

美好的一天:

我目前有一个索引school -> children的以下结构...意味着对于每个school文档,都有children子文档的列表。 ChildrenSchool中对象的嵌套列表。我的目标是查询父项school.id=id,并且在对children.userId = userId进行分页时,只返回与children相匹配的子文档。我不确定如何完成此操作,但是使用NEST的任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

编辑:

我没有意识到您只想对单个文档的结果进行分页。在这种情况下,您可以使用具有自己的inner_hitsfrom参数的size

参考:inner_hits documentation

原始答案:

当您使用嵌套类型时,我认为您不能直接在内部对象上进行分页。相反,您希望在单独的文档中为学校和孩子建立索引,并使用join类型在它们之间创建父子关系。然后,您可以使用has_parent查询来搜索子项并对返回的子项进行分页。

参考:

如何创建映射:Join Relationship

如何创建查询:has_parent query