2016-03-24 21 views
1

フィールドでquery_stringクエリを実行すると、大文字小文字の区別がなく、ワイルドカードクエリで大文字と小文字が区別されるのはなぜですか?私は2人が同様に行動するだろうと思っていただろう。このワイルドカードクエリはElasticSearch:なぜquery_stringでは大文字と小文字が区別され、ワイルドカードでは大文字と小文字が区別されますか?

{ 
    "query": { 
    "bool" : { 
     "must" : [{ 
     "wildcard" : { 
      "name" : "*HILTON*" 
     } 
     } ] 
    } 
    } 
} 

答えて

4

これはnot analyzedフィールドのためWild card query作品ではありませんよう

このQUERY_STRINGクエリが返すは

{ 
    "query": { 
    "bool" : { 
     "must" : [ { 
     "query_string" : { 
      "query" : "name:*HILTON*" 
     } 
     } ] 
    } 
    } 
} 

結果。ドキュメントを1として

接頭辞、ワイルドカード、および正規表現のクエリが条件で動作します。解析されたフィールドを照会するためにそれらを使用すると、フィールド全体ではなくフィールド内の各用語を検査します。

ワイルドカードクエリは、ワイルドカード式(解析されていない)と一致するフィールドを持つドキュメントと一致します。

関連する問題