2016-04-09 16 views
0

私はelasticsearchに解析しないようにすべての文字列を変更するテンプレートを書きたいと思います。 official documentationは私がelasticsearchで解析されていない文字列

"properties": { 
     "host_name": { 
      "type": "string", 
      "index": "not_analyzed" 
     }, 
     "created_at": { 
      "type": "date", 
      "format": "EEE MMM dd HH:mm:ss Z YYYY" 
     } 
     } 

しかし、ここで問題を使用すると、それはhost_nameのためにここで行われているように私はすべてのフィールドのためにこれを行う必要があるということであることを行うことができますことを示しています。私は_all__allを使ってみましたが、うまくいきませんでした。カスタムテンプレートを使用して解析されないようにするには、どのようにすべての文字列を変更できますか?

+0

すでに存在しない索引の場合は?そうなら、不可能です。 –

+0

私は現在、サーバのセットアップとテストを行っているので、索引付けされたデータはほとんど5つのドキュメントではありません....それは大きな問題ではありません! –

答えて

2

すでに存在するインデックスの場合は、既存のフィールドのマッピングを変更することはできません。可能であれば、新しいマッピングルールに従うようにすべてのドキュメントを再インデックスする必要があります。

そうでない場合は、あなただけのインデックス作成した場合:

PUT /_template/not_analyzed_strings 
{ 
    "template": "xxx-*", 
    "order": 0, 
    "mappings": { 
    "_default_": { 
     "dynamic_templates": [ 
     { 
      "string_fields": { 
      "mapping": { 
       "index": "not_analyzed", 
       "type": "string" 
      }, 
      "match_mapping_type": "string", 
      "match": "*" 
      } 
     } 
     ] 
    } 
    } 
} 
関連する問題