在Elasticsearch中,有没有办法从生成的_source中排除与特定查询/过滤器不匹配的嵌套对象?
例如,假设一个文档在一个嵌套字段中有四个对象。查询所需的筛选器只会生成匹配的对象 1 和 3。当我们通过_source获得结果时,我们将拉回整个文档以及对象 1,2,3,4。
是否可以从结果中排除对象 2 和 4?或者这是我们必须使用应用程序端逻辑重新迭代和排除的东西吗?
目前,无法在结果中仅包含匹配的嵌套对象。
elasticsearch 1.5.0 中出现了一个inner_hits功能,它应该对此有所帮助。
您可以使用inner_hits来实现此目的,这将仅返回匹配的嵌套对象。 您可以在源中排除此嵌套字段。
Val 建议:ElasticSearch - 仅获取与搜索响应中所有顶级字段匹配的嵌套对象