如何用Elasticsearch编写条件查询?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (153)

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

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

如果值(在这种情况下为'a1')不为空,我该如何执行第二个'必须'标准?

提问于
用户回答回答于

你可以用以下方法实现:

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "id": "1"
          }
        },
        {
          "bool": {
            "should": [
              {
                "missing": {
                  "field": "tags.name"
                }
              },
              {
                "match": {
                  "tags.name": "a1"
                }
              }
            ]
          }
        }
      ]
    }
  }
}
用户回答回答于

我不认为“missing”可以在最新版本的elasticsearch中使用。但是可以使用条件句。

扫码关注云+社区

领取腾讯云代金券