如何用Elasticsearch编写条件查询?

5 elasticsearch

我有一个简单的Elasticsearch JSON查询,如下所示:

"query": {
  "bool": {
    "must": { "match": { "id": "1" }} ,
    "must": { "match": { "tags.name": "a1"}}
   }
}
Run Code Online (Sandbox Code Playgroud)

如果值(本例中为"a1")不为空,我该如何执行第二个"必须"标准?

Vin*_*han 6

你可以使用以下方法实现它 -

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "id": "1"
          }
        },
        {
          "bool": {
            "should": [
              {
                "missing": {
                  "field": "tags.name"
                }
              },
              {
                "match": {
                  "tags.name": "a1"
                }
              }
            ]
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)