2017-02-25 25 views
0

我是elasticsearch的新手。我有点困惑,elasticsearch匹配和multimatch查询。两种查询类型有什么区别?当他们每个人都必须使用?使用它们每个的性能意味着什么?elasticsearch中match和multimatch查询类型的区别

在此先感谢。

+0

[文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html)很清楚,'multi_match'可以让你查询多个字段,而'match'使用单个字段。还有什么还不清楚吗? – Romoku

+0

我也想知道,在应用程序中使用multi_match而不是匹配的性能影响。 –

回答

0

您可以很容易地看到multimatchmatchthe 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 typemost_fields type

+0

您是否还可以详细说明best_field和cross_field如何适用于您提供的示例?感谢most_field的解释。 –

相关问题