一尘不染

如何使用Elasticsearch编写条件查询?

elasticsearch

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

"query": {
  "bool": {
    "must": { "match": { "id": "1" }} ,
    "must": { "match": { "tags.name": "a1"}}
   }
}

仅当值(在这种情况下为“ a1”)不为空时,才如何执行第二个“必须”条件?


阅读 285

收藏
2020-06-22

共1个答案

一尘不染

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

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "id": "1"
          }
        },
        {
          "bool": {
            "should": [
              {
                "missing": {
                  "field": "tags.name"
                }
              },
              {
                "match": {
                  "tags.name": "a1"
                }
              }
            ]
          }
        }
      ]
    }
  }
}
2020-06-22