ElasticSearch查询-匹配元组列表中的特定文档

时间:2018-11-01 09:53:24

标签: elasticsearch kibana

我正面临一个查询要求,在给定一个元组列表的情况下,我需要返回与一个或多个元组的两个字段完全匹配的所有文档。

元组将复制以下内容:

[{"field_A": value_1, "field_B": value_2}, {"field_A": value_3, "field_B": value_4}, ...]

我能够编写一个查询,该查询可以通过布尔查询来实现;一组应有子句,每个应子句带有两个嵌套的must子句,每个must子句包含一个术语查询。

"bool": {
  "should": [
    {
      "bool": {
        "must": [
          {
            "term": {
              "field_A": {
                "value": "value_1"
              }
            }
          },
          {
            "term": {
              "field_B": {
                "value": "value_2"
              }
            }
          }
        ]
      }
    },
    {
      "bool": {
        "must": [
          {
            "term": {
              "field_A": {
                "value": "value_3"
              }
            }
          },
          {
            "term": {
              "field_B": {
                "value": "value_4"
              }
            }
          }
        ]
      }
    },
    ...
  ]
}

但是,作为参数提供给查询的元组列表可能“无限长”,并且似乎该解决方案很快就会变得非常冗长且效率低下。

我是否错过了另一种查询样式,该查询样式从本质上允许我执行词条查询,但针对的是多字段元组列表,而不是单个元素列表?

在此先感谢所有指针!

0 个答案:

没有答案