2016-04-09 85 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": "*" 
      } 
     } 
     ] 
    } 
    } 
}