术语查询不支持Elasticsearch 2.3.3中的minimum_match

时间:2016-11-28 05:26:57

标签: elasticsearch

我想使用像这样的术语查询来搜索与至少两个关键词匹配的文档:

{
  "query": {
     "terms": {
        "title": ["java","编程","思想"],
        "minimum_match": 2
    }
  },
  "highlight": {
    "fields": {
       "title": {}
    }
  }
}

它会返回"术语查询不支持minimum_match"。我的查询有什么问题?

1 个答案:

答案 0 :(得分:2)

正确的名称为minimum_should_match,该设置为deprecated in ES 2.0

您可以执行的操作是使用bool/should个查询,其中包含三个term个查询和minimum_should_matchbool/should个查询设置:

{
  "query": {
    "bool": {
      "minimum_should_match": 2,
      "should": [
        {
          "term": {
            "title": "java"
           }
        },
        {
          "term": {
            "title": "编程"
          }
        },
        {
          "term": {
            "title":  "思想"
          }
        }
      ]
    }
  },
  "highlight": {
    "fields": {
      "title": {}
    }
  }
}