如何提高词组匹配但只是在某些领域?

时间:2016-02-07 10:23:06

标签: elasticsearch match-phrase

我希望通过匹配措辞来提升查询,但我希望它只在某个字段中搜索。到目前为止,我有以下查询

{
  "query": {
    "bool": {
      "should": [
        {
          "match_phrase": {
            "_all": {
              "query": "string",
              "boost": 5
            }
          }
        }
      ]
    }
  }
}

但这会返回几个结果,因为我没有指定它应该搜索的字段。我尝试了另一种方法:

{
  "query": {
    "bool": {
      "should": [
        {
          "match_phrase": {
            "_all": {
              "query": "string",
              "fields": [
                "filed_name"
              ],
              "boost": 5
            }
          }
        }
      ]
    }
  }
}

但我收到了错误

  

[match]查询不支持[fields]]

1 个答案:

答案 0 :(得分:1)

您可以使用multi match查询并使用phrase type在特定字段中执行match_phrase

{
  "query": {
    "multi_match": {
      "query": "some string",
      "fields": ["title","summary"],
      "type": "phrase"
    }
  }
}