在Elasticsearch中,是否可以在嵌套过滤器中引用顶级(非嵌套)属性?
我有一种情况,我需要在全局级别或任意数量的关联嵌套对象之一中使条件成立。在嵌套过滤器内部,我有一个or-filter来检查一个或另一个,但外部属性似乎被忽略。一个例子是here。
我觉得我所需要的东西不受支持,嵌套过滤器内的所有内容都必须在指定路径或低于指定路径(从docs,"查询是针对嵌套对象/文档执行的,就好像它们被编入索引作为单独的文档(它们在内部)" 。我即将复制每个嵌套中的顶级数据对象(它实际上只是一个布尔字段),但我想知道这是否可行,或者是否有其他明显的解决方案我不知道。
答案 0 :(得分:1)
您是正确的,因为不支持您要查找的功能。 Elasticsearch使用各种Lucene连接查询,例如下面的ToParentBlockJoinQuery,它不引用这两个属性层。
您可以使用include_in_parent / include_in_root属性将属性推送到更高级别,但是您无法过滤属于同一嵌套文档的多个属性。