我有SQL查询:
WHERE A = 1 AND B = 2 AND C REGEXP (eee|fff|ggg)
如何在elasticsearch中编写此查询?

最佳答案

未经测试,但您需要使用filterregexp QUERY-DSL 这样的东西,

GET /_search
{
  "size": 10,
   "query": {
        "filter" : {
            "bool" : {
              "must" : [
                 { "term" : {"A" : 1}},
                 { "term" : {"B" : 2}}
              ]
           }
         },
        "regexp": {
            "C": {
                "value": "eee|fff|ggg"
            }
        }
    }
}


GET /_search
{
  "size": 10,
  "query": {
    "filter": {
      "bool": {
        "must": [
          {
            "term": {
              "A": 1
            }
          },
          {
            "term": {
              "B": 2
            }
          },
          {
            "regexp": {
              "C": {
                "value": "eee|fff|ggg"
              }
            }
          }
        ]
      }
    }
  }
}

关于regex - 如何在Elasticsearch中编写此查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62325290/

10-10 17:49
查看更多