【问题标题】:Elasticsearch - include child document if it existsElasticsearch - 包含子文档(如果存在)
【发布时间】:2018-01-30 11:25:08
【问题描述】:

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

【问题讨论】:

标签: elasticsearch parent-child elasticsearch-5


【解决方案1】:

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

  1. 没有 B 类型子代的父代(使用 not + has_child)
  2. 拥有 B 类子代的父代(使用 has_child + inner_hits)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    相关资源
    最近更新 更多