我有文档类型“A”,它是类型“B”的父级。不过,并非所有“A”都有子文档。我想获得与某些过滤器匹配的所有“A”类型的文档,如果 B 存在,我还想将“B”作为内部命中。是否可以在 ElasticSearch 5.5 中执行?仅使用 has_child 不会返回任何没有 child 的文档“A”。
最佳答案
我能够通过使用 2 个应该条件运行 bool 查询来实现这一点:
- 没有 B 型 child 的 parent (使用 not + has_child)
- 有 B 型 child 的 parent (使用 has_child + inner_hits)
这按预期工作并返回所有 parent ,无论他们是否有 child B,如果 B 存在,则包括 B 数据。
关于Elasticsearch - 包含子文档(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48520238/