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

时间:2018-01-30 11:25:09

标签: elasticsearch parent-child elasticsearch-5

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

1 个答案:

答案 0 :(得分:1)

我能够通过运行带有2个条件的bool查询来实现这一点:

  1. 没有B型子女的父母(使用非+ has_child)
  2. 有B型子女的父母(使用has_child + inner_hits)
  3. 按预期工作并返回所有父母,无论他们是否有孩子B,如果B存在,则包括B数据。