弹性搜索:排除结果中不匹配的嵌套对象



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

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

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

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

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

您可以使用inner_hits来实现此目的,这将仅返回匹配的嵌套对象。 您可以在源中排除此嵌套字段。

Val 建议:ElasticSearch - 仅获取与搜索响应中所有顶级字段匹配的嵌套对象

最新更新