查询在elasticsearch中搜索数组

时间:2017-06-01 04:52:45

标签: arrays elasticsearch

in elasticsearch(5.3)

我的文档结构有三个字段是这样的:

{
  x:55
  y:66
  z:44
}

我需要在我的文档中搜索此数组的查询:

 [[55,66,44],[45,68,95]]

等同于SQL语言:

  select * from table where (x=55 AND y=66 AND z=44) OR (x=45 AND y=68 AND z=95)

1 个答案:

答案 0 :(得分:0)

这样的事情可以解决问题:

{
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "must": [
              {
                "term": {
                  "x": 55
                }
              },
              {
                "term": {
                  "y": 66
                }
              },
              {
                "term": {
                  "z": 44
                }
              }
            ]
          }
        },
        {
          "bool": {
            "must": [
              {
                "term": {
                  "x": 45
                }
              },
              {
                "term": {
                  "y": 68
                }
              },
              {
                "term": {
                  "z": 95
                }
              }
            ]
          }
        }
      ]
    }
  }
}