引用嵌套过滤器中的顶级属性

时间:2014-04-25 19:56:39

标签: elasticsearch

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

我有一种情况,我需要在全局级别或任意数量的关联嵌套对象之一中使条件成立。在嵌套过滤器内部,我有一个or-filter来检查一个或另一个,但外部属性似乎被忽略。一个例子是here

我觉得我所需要的东西不受支持,嵌套过滤器内的所有内容都必须在指定路径或低于指定路径(从docs"查询是针对嵌套对象/文档执行的,就好像它们被编入索引作为单独的文档(它们在内部)" 。我即将复制每个嵌套中的顶级数据对象(它实际上只是一个布尔字段),但我想知道这是否可行,或者是否有其他明显的解决方案我不知道。

1 个答案:

答案 0 :(得分:1)

您是正确的,因为不支持您要查找的功能。 Elasticsearch使用各种Lucene连接查询,例如下面的ToParentBlockJoinQuery,它不引用这两个属性层。

您可以使用include_in_parent / include_in_root属性将属性推送到更高级别,但是您无法过滤属于同一嵌套文档的多个属性。