【问题标题】:Elasticsearch: Exclude non-matching nested objects in resultsElasticsearch:在结果中排​​除不匹配的嵌套对象
【发布时间】:2016-11-24 17:18:04
【问题描述】:

在 Elasticsearch 中,有没有办法从结果 _source 中排除与特定查询/过滤器不匹配的嵌套对象?

例如,假设一个文档在一个嵌套字段中有四个对象。查询所需的过滤器只会匹配对象 1 和 3。当我们通过 _source 获得结果时,我们将连同对象 1、2、3、4 一起拉回整个文档。

是否可以从结果中排除对象 2 和 4?还是我们必须使用应用程序端逻辑重新迭代和排除?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    目前无法在结果中仅包含匹配的嵌套对象。

    elasticsearch 1.5.0 中出现了一个 inner_hits 功能,应该会对此有所帮助。

    【讨论】:

    • 很高兴听到。这也是我想做的事情,但目前找不到任何方法。
    【解决方案2】:

    您可以使用 inner_hits 来实现这一点,它只会返回匹配的嵌套对象。您可以在源代码中排除此嵌套字段。

    Val 建议: ElasticSearch - Get only matching nested objects with All Top level fields in search response

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多