一尘不染

词组之间的Elasticsearch OR操作

elasticsearch

在Elasticsearch中是否可以在单个查询中获取所有包含短语1或短语2的文档?我知道要匹配一个短语,可以使用以下查询:

"query" : {
        "match_phrase" : {
            "title" : "rock climbing"
        }
    }

但是,如果有多个词组并且目标是检索包含这些词组之一的文档,情况如何?


阅读 286

收藏
2020-06-22

共1个答案

一尘不染

您可以将两个match_phrase查询包装在布尔查询should子句中:

{
  "query" : {
    "bool": {
      "should": [
        {
          "match_phrase" : {
            "title" : "phrase1"
          }
        },
        {
          "match_phrase": {
            "title": "phrase2"
          }
        }
      ],
      "minimum_number_should_match": 1
    } 
  }
}
2020-06-22