2017-10-11 7 views
0

まず最初に、私は弾性検索を初めて利用しています。フィールドはskillName:"Android Sdk"です。私はこのフィールドを弾性検索でkeywordとしてマップします。しかし問題は、私が何かで検索したときのようなものです。大文字と小文字のアルファベットを無視してエラスティック検索でテキストを検索

POST _search 
{ 
"query": { 
"match" : { "skillName" : "Android sdk" } 
} 
} 

sdk検索クエリでは小さいです。私には何の結果も与えません。フィールドがキーワード

答えて

0

としてマッピングされたときにどのように私は、テキストの下または上ケースを無視して検索することができ、以下を試してみてください。

{ 
    "query": { 
    "query_string": { 
     "fields": [ 
     "skillName" 
     ], 
     "query": "Android sdk" 
    } 
    } 
} 
+0

いいえ動作していません – FaisalAhmed

+0

これを確認してください - https://discuss.elastic.co/t/wildcard-case-insensitive-query-string/75050/5 – Nandeesh

1

導入されたあなたはnormalizerを使用する必要がキーワードフィールド、上の大文字小文字の区別を検索します5.2.0。例については、hereを参照してください。

1

はい、トークンで何もしなかったkeywordアナライザを使用していたので、オリジナルとは異なるケースを無視していますが、そのままそのまま保存しています。あなたのケースでは、それはあなたが正確な照会する場合にのみマッチを行います同じトークン

をだから、私はこの動作を変更し、少なくともあなたが別のレジスタとの用語に一致することができるようになりますので、lowercaseトークンフィルタを適用することを提案するでしょう。

1

異なるアナライザーを同じ«フィールド»に適用して、フルテキスト検索とソート、集計用に別々のアナライザーを適用することができます。

関連する問題