我必须在我的应用程序中重构一些代码,才能在ElasticSearch中使用子/父关系。我将Parent作为主要搜索对象,并使用HasChild来过滤所有子属性。
就目前而言,返回对象是完整的父对象。但是在我的代码中,我还需要访问某些子属性(即子ID)。这可能会在结果集中返回吗?
最佳答案
如果您需要来自子项的数据,那么您实际上是在寻找带有has_parent
子句的子项对象查询,以通过父项上的某种条件进行过滤。
这样想:即使两个 child 共享同一个 parent ,您的结果也应该包括每个匹配 child 一个命中。因此,您要搜索的主要对象实际上是 child 而不是 parent 。
您还可以考虑使用( deprecated since ~1.7) top-children
has-child
查询,该查询将为您提供 parent 及其匹配的 child ,但是这需要一些有关您希望每个 parent 看到多少 child 的估计。
关于elasticsearch - 在ElasticSearch查询中返回子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22646041/