Elasticsearch - 包含子文档(如果存在)

标签 elasticsearch parent-child elasticsearch-5

我有文档类型“A”,它是类型“B”的父级。不过,并非所有“A”都有子文档。我想获得与某些过滤器匹配的所有“A”类型的文档,如果 B 存在,我还想将“B”作为内部命中。是否可以在 ElasticSearch 5.5 中执行?仅使用 has_child 不会返回任何没有 child 的文档“A”。

最佳答案

我能够通过使用 2 个应该条件运行 bool 查询来实现这一点:

  1. 没有 B 型 child 的 parent (使用 not + has_child)
  2. 有 B 型 child 的 parent (使用 has_child + inner_hits)

这按预期工作并返回所有 parent ,无论他们是否有 child B,如果 B 存在,则包括 B 数据。

关于Elasticsearch - 包含子文档(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48520238/

相关文章:

Elasticsearch 删除重复项

javascript - 如何养育 child ul?

elasticsearch - 从SQL转换为ElasticSearch查询

ruby-on-rails - Elasticsearch和Tire排除Deleted_at对象

elasticsearch - 如何在elasticsearch中匹配包含连字符或尾随空格的查询项

java - hibernate - 从集合中删除项目

.net - 从 viewModel 获取控件

elasticsearch - Elasticsearch索引清理

php - 突出显示在 Elasticsearch 和 PHP 中不起作用

elasticsearch - Elasticsearch匹配字符串数组