查找所有数组字段值与谓词匹配的文档

时间:2018-06-14 15:36:43

标签: elasticsearch spring-data-elasticsearch

给出以下文档架构

{
    "type": ["A", "B"]
}

其中field type keyword 类型的索引字段。

我想查找 type 字段的所有值应与某些谓词 p 匹配的文档。

基本上我需要检查 type 字段中的所有值是否都存在于另一个数组中。例如。对于[“A”,“B”,“C] doc匹配,对于[”A“,”D“]不。

1 个答案:

答案 0 :(得分:0)

您可以使用scripts来解决此问题。这里的想法是检查doc中是否存在input_array的所有元素。请参阅:subsets-discussion

在版本 6.3 中,通过terms_set查询对此进行了本机支持。参考: terms-set-query-dsl