2016-10-18 17 views
0

我可以將dynamic_templates與索引模板組合嗎?我們已經定義了索引模板,該模板適用於使用前綴創建的索引。例如下面的指數模板將創建一個映射到任何指數開始以「德」:禁用分析索引模板中不存在的字段

PUT /_template/template_1 
{ 
    "template": "te*", 
    "settings": { 
    "number_of_shards": 1 
    }, 
    "mappings": { 
    "type1": { 
     "_source": { 
     "enabled": false 
     }, 
     "_all": { 
     "enabled": false 
     }, 
     "properties": { 
     "host_name": { 
      "type": "string", 
      "index": "not_analyzed" 
     }, 
     "created_at": { 
      "type": "date", 
      "format": "EEE MMM dd HH:mm:ss Z YYYY" 
     } 
     } 
    } 
    } 
} 

我也想dynamic_template樣的功能結合起來,因此,如果任何新的「字符串」字段的內容中的數據,其分析在默認情況下被禁用。

回答

1

應該能夠在索引模板來指定動態映射

實施例:

{ 
     "template": "te*", 
     "settings": { 
     "number_of_shards": 1 
     }, 
     "mappings": { 
     "type1": { 
      "_source": { 
      "enabled": false 
      }, 
      "_all": { 
      "enabled": false 
      }, 
      "properties": { 
      "host_name": { 
       "type": "string", 
       "index": "not_analyzed" 
      }, 
      "created_at": { 
       "type": "date", 
       "format": "EEE MMM dd HH:mm:ss Z YYYY" 
      } 
      }, 
      "dynamic_templates": [ 

      { 
       "strings": { 
       "match_mapping_type": "string", 
       "mapping": { 
        "type": "string", 
        "index":"not_analyzed" 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 

上面的例子將確保type1任何動態的「字符串類別」字段將是未分析。

+0

這是行不通的嗎? – keety

+0

謝謝@keety,它像魅力:) –

+0

不得不使用''ignore_above「:256'與'映射'內'not_analyzed'索引,因爲有些值超過'32766'字符。 –