我是elasticsearch的新手。我有点困惑,elasticsearch匹配和multimatch查询。两种查询类型有什么区别?当他们每个人都必须使用?使用它们每个的性能意味着什么?elasticsearch中match和multimatch查询类型的区别
在此先感谢。
我是elasticsearch的新手。我有点困惑,elasticsearch匹配和multimatch查询。两种查询类型有什么区别?当他们每个人都必须使用?使用它们每个的性能意味着什么?elasticsearch中match和multimatch查询类型的区别
在此先感谢。
您可以很容易地看到multimatch
和match
与the documentation的查询差异之间的差异。
GET /_search
{
"query": {
"bool": {
"should": [
{ "match": { "title": "quick brown fox" }},
{ "match": { "title.original": "quick brown fox" }},
{ "match": { "title.shingles": "quick brown fox" }}
]
}
}
}
从match
查询正如你所看到的,multimatch
查询编译:例如,multimatch
查询类型most_fields
GET /_search
{
"query": {
"multi_match" : {
"query": "quick brown fox",
"type": "most_fields",
"fields": [ "title", "title.original", "title.shingles" ]
}
}
}
这将作为被执行。所以,我认为,性能问题与您的查询结构有关。您可以选择另一个查询,可以提高生产力或不提高生产率。
其他类型的multimatch
查询与most_fields
类型的情况相同。例如,Phrase
type,most_fields
type。
您是否还可以详细说明best_field和cross_field如何适用于您提供的示例?感谢most_field的解释。 –
[文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html)很清楚,'multi_match'可以让你查询多个字段,而'match'使用单个字段。还有什么还不清楚吗? – Romoku
我也想知道,在应用程序中使用multi_match而不是匹配的性能影响。 –