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

在嵌套筛选器中引用顶级属性

姚永年
2023-03-14

在Elasticsearch中,是否可以在嵌套筛选器中引用顶级(非嵌套)属性?

我有一种情况,我需要一个条件在全局级别或在任何数量的关联嵌套对象中的一个中为真。在嵌套筛选器内部,我有一个或筛选器来检查其中一个或另一个,但似乎忽略了外部属性。这里有一个例子。

我有一种感觉,我需要的东西不受支持,嵌套筛选器内部的所有内容都必须在指定的路径上或以下应用(从文档开始,“对嵌套对象/文档执行查询,就像它们被索引为单独的文档一样(它们是内部的)”。我只想复制每个嵌套对象中的顶级数据(它实际上只是一个布尔字段),但我想知道这是否可能,或者是否有另一个明显的解决方案。

共有1个答案

徐星阑
2023-03-14

您是正确的,您正在寻找的功能不受支持。Elasticsearch使用各种Lucene联接查询,比如下面的ToParentBlockJoinQuery,它不引用这两层属性。

您可以使用include_in_parent/include_in_root属性将属性提升到更高的级别,但您将无法筛选属于同一嵌套文档的多个属性。

 类似资料:
  • 我试图在嵌套筛选器聚合中使用嵌套查询筛选器。当我这样做时,聚合返回时没有任何项。如果我将查询更改为简单的旧match_all筛选器,我确实会在bucket中获得项。 下面是我正在使用的映射的简化版本: 该查询在聚合上使用match_all筛选器:

  • 我是Elasticsearch的新手,我试图创建一个过滤器来检索具有特定属性的文档。 属性在映射中定义为嵌套对象,如下所示: 我试图以以下形式执行一个复杂的查询: 这是elasticsearch 2.x。我做错了什么?

  • 我试图构造一个ElasticSearch查询,但没有得到预期的结果。任何帮助都将不胜感激! 映射详细信息: null null 目前,每个嵌套的轮班文档都包含一个嵌套的calendarBlock文档,其中包含开始和结束日期时间字段,以及一个可以注册该轮班的最大志愿者人数字段。 查询 我试图构造的查询是经过筛选的查询。从Web上的窗体传入查询字符串。然后,我需要以编程方式将至少三个筛选器附加到这个查

  • 好吧,这一个对你们中的一个超级棒的弹性搜索专家来说可能不会太难。我得到了这个嵌套查询,我希望嵌套查询在一个非嵌套字段(状态)上进行过滤。我不知道把过滤器放在哪里。我试着把它放在一个查询中(如下),但没有给出正确的结果。你能帮我吗?

  • 我需要在嵌套字段上应用一个脚本,在那里我可以遍历用户数组。 例如,我尝试了以下方法: 我得到这个错误