このクエリを実行する場合:
{
"query_string" : {
"query" : "text",
"fields": ["field1", "field2"]
}
}
-
{
"multi_match" : {
"query" : "text",
"fields": ["field1", "field2"]
}
}
違いはなんですか?いつ一方を使用し、いつもう一方を使用するのですか?
query_string
はテキストを解釈するためのLucene構文をサポートします 、ここで multi_match
は指定された"text"
をリストされたフィールドのインデックス値と照合しようとします 。
したがって、クエリ文字列ははるかに強力ですが、/
によって文字列の一部が正規表現として解釈されるなど、予期しないシナリオが発生する可能性もあります。
DrTechは、2つ以上を示す非常に優れた仕事をしています この回答では 。