2017-04-14 45 views
0

インデックス内のいくつかのキーワードで集計を実行しようとしていますが、索引付けおよび検索中にすべてのキーワードを小文字にしたいが、弾性5.1はノーマライザをサポートしません。また、テキストとしてインデックス化してフィールドデータを有効にしたくありません。これを達成するための他の選択肢は何ですか?大文字と小文字を区別しないキーワードで集計を実行しますelasticsearch 5.1

+0

ご存知のように、すべてのケースでフィールドデータがそれほど悪くはありません。あなたのノードがフィールドデータから余分なメモリ使用を許可しているのであれば、どうしてですか? –

+0

@AndreiStefan私は弾性がそれを使用することを推奨しないと思うので、私は懐疑的です。 –

+1

一般的に、分析フィールドに集計するのは意味がないため、使用することはお勧めしません。しかし、これは悪い設計やバグから来るものではありません。たとえば、メモリ使用量の改善です。しかし、あなたのメモリ使用量がうまくいて、他の選択肢がない場合は、それを使用してください。 –

答えて

0

トークンフィルタkeywordとトークンフィルタlowercaseで構成されたアナライザを使用できます。

PUT my_index 
{ 
    "settings": { 
    "analysis": { 
     "analyzer": { 
     "my_keyword": { 
      "type":  "custom", 
      "tokenizer": "keyword", 
      "filter": ["lowercase"] 
     } 
     } 
    } 
    }, 
    "mappings": { 
    "my_type": { 
     "properties": { 
     "my_field": { 
      "type":  "text", 
      "analyzer": "standard", 
      "fields": { 
      "keyword": { 
       "type":  "text", 
       "analyzer": "my_keyword" 
      } 
      } 
     } 
     } 
    } 
    } 
} 
+0

キーワードのアナライザーを正しく適用することはできませんか?また、テキスト上で集計を実行することはできません。 –

+0

もう1つの方法は、データをESに送る前にデータを小文字にすることです。または5.3 – Val

+0

にデータを送信してから送信してください。私はこの問題を理解していません。とにかくインデックスを再作成する必要があります –

関連する問題