当前位置: 首页 > 知识库问答 >
问题:

ElasticSearch:在结果中排除不匹配的嵌套对象

蒋承教
2023-03-14

在Elasticsearch中,是否有任何方法可以将与特定查询/筛选器不匹配的嵌套对象从结果源中排除?

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

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

共有1个答案

羊舌富
2023-03-14

目前还没有办法在结果中只包含匹配的嵌套对象。

elasticsearch 1.5.0中有一个inner_hits特性,应该会对此有所帮助。

 类似资料:
  • 该示例摘自Elasticsearch参考:https://www.elastic.co/guide/en/Elasticsearch/reference/5.3/nested.html 我的索引和这个差不多。唯一的区别是user.first和user.last是关键字类型,所以我可以对它们使用过滤器。 在两种情况下,我应该使用什么查询来获取与上面数组匹配的文档(正好是两个项,一个项是John Sm

  • 我只需要对与查询匹配的嵌套对象上的值求和。看起来ElasticSearch确定与查询匹配的文档,然后对所有嵌套对象求和。从下面的大纲中,我想搜索嵌套对象。objtype=“A”并返回objvalue之和,仅用于匹配嵌套对象,我想得到值4。这可能吗?如果是,如何? 这是地图 这是我的文件 这是我的查询代码。

  • null 当然有更好的方法吗?

  • 问题内容: 我正在使用以下映射: 文件范例: 我的问题是如何检索此文档并按“日期”对嵌套对象“注释”进行排序?结果: 问题答案: 您需要在inner_hits上对进行排序。这将为您提供所需的输出 我使用的源过滤得到的只有作为将被检索里面,但你能避免,如果你想 是5,因为默认值为3,并且在给定的示例中我们有4个对象。 希望这可以帮助!

  • 问题内容: 我正在尝试在Elasticsearch中进行嵌套排序,但到目前为止没有成功。 我的数据结构: 我想根据文档中第一作者的姓氏对文档进行排序。 使用的映射: 使用SearchRequestBuilder(JAVA)进行排序: 这行得通,但没有给出想要的结果(例如,首先是“叫卖”,然后是“罗杰”)。 我错过了什么吗?有没有办法表明Elasticsearch访问数组authorList的ind

  • 我试图在Elasticsearch中进行嵌套排序,但到目前为止还没有成功。 我的数据结构: 我想根据文档中第一作者的姓氏对文档进行排序。 使用SearchRequestBuilder(JAVA)进行排序: 这是有效的,但不能给出想要的结果(例如,首先是“霍金”,然后是“罗杰”)。 我是不是漏掉了什么?是否有一种方法可以指示Elasticsearch访问数组authorlist的index=0?是否