2016-04-06 3 views
0

I know, dass ich dynamic_template verwenden kann, um Zeichenfolgenfelder auf not_analyzed für neue Felder in einem bestimmten neuen Index festzulegen.Wie ist not_analysed für alle neuen Indizes standardmäßig?

Gibt es eine Möglichkeit, diese Einstellung anzuwenden global - d. H. Die Eigenschaft not_analyzed für ein beliebiges Zeichenfolgenfeld in einem neuen Index festgelegt? (Ohne die Notwendigkeit, sie für jeden neuen Index zu setzen)

Antwort

7

Ja, Sie können dies erreichen, indem ein index template auf * mit einem _default_ mapping type und dynamic templates Schaffung

curl -XPUT localhost:9200/_template/global -d '{ 
    "template": "*", 
    "mappings": { 
    "_default_": { 
     "dynamic_templates": [ 
     { 
      "strings": { 
      "match_mapping_type": "string", 
      "mapping": { 
       "type": "string", 
       "index": "not_analyzed" 
      } 
      } 
     } 
     ] 
    } 
    } 
}' 

Dann können Sie jedes Dokument in jedem neuen Index erstellen und die alle String-Felder not_analyzed

curl -XPUT localhost:9200/dummy_index/dummy_type/1 -d '{"name": "dummy"}' 

sein Wenn Sie überprüfen die dummy_type Mapping-Typ des neu geschaffenen dummy_index, yo Sie werden sehen, dass das Feld namenot_analyzed

ist
Verwandte Themen