运行此查询时:
{
"query_string" : {
"query" : "text",
"fields": ["field1", "field2"]
}
}
-
{
"multi_match" : {
"query" : "text",
"fields": ["field1", "field2"]
}
}
有什么区别?何时使用另一个?何时使用另一个?
答案 0 :(得分:14)
query_string
supports Lucene syntax to interpret the text,其中multi_match
just attempts to match the given "text"
against the listed fields' indexed values。
查询字符串因此功能更强大,但它也可能导致意外情况,例如/
可能导致部分字符串被解释为正则表达式。
DrTech做了非常出色的工作,展示了两个in this answer。