elasticsearch中匹配和多匹配查询类型之间的差异

时间:2017-02-25 03:06:16

标签: elasticsearch

我是elasticsearch的新手。我有点困惑,弹性搜索匹配和多匹配查询。两种查询类型之间的区别是什么?什么时候必须使用它们?使用每种产品的性能意义是什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以轻松查看multimatchmatch查询差异与the documentation之间的差异。例如,multimatch查询类型为most_fields

GET /_search
{
  "query": {
    "multi_match" : {
      "query":      "quick brown fox",
      "type":       "most_fields",
      "fields":     [ "title", "title.original", "title.shingles" ]
    }
  }
}

这将执行:

GET /_search
{
  "query": {
    "bool": {
      "should": [
        { "match": { "title":          "quick brown fox" }},
        { "match": { "title.original": "quick brown fox" }},
        { "match": { "title.shingles": "quick brown fox" }}
      ]
    }
  }
}

如您所见,multimatch查询来自match个查询。所以,我认为,性能问题与您的查询结构有关。您可以选择其他查询,这样可以提高效率。

multimatch查询的另一种类型与most_fields类型的情况相同。例如,Phrase typemost_fields type