2016-04-09 6 views
0

Ich möchte eine Vorlage in elasticsearch schreiben, die alle strngs zu nicht analysiert ändert. Die official documentation zeigt, dass ich kann das tun mitnicht analysierte string in elasticsearch

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

Aber das Problem hier ist, dass ich das für jedes Feld tun müssen, wie es für host_name hier getan wird. Ich versuchte mit _all und __all aber es schien nicht zu funktionieren. Wie kann ich alle Zeichenketten so ändern, dass sie nicht mit einer benutzerdefinierten Vorlage analysiert werden?

+0

Für einen bereits vorhandenen Index? Wenn ja, nicht möglich. –

+0

Ich bin gerade dabei, den Server einzurichten und zu testen, also sind die indexierten Daten kaum 5 Dokumente .... Es wäre kein großes Problem! –

Antwort

2

Für einen bereits vorhandenen Index können Sie die Zuordnung der bereits vorhandenen Felder nicht ändern, und selbst wenn Sie könnten, müssen Sie alle Dokumente neu indizieren, damit sie die neuen Zuordnungsregeln befolgen können. Ansonsten

, wenn Sie erstellen Sie einfach den Index:

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": "*" 
      } 
     } 
     ] 
    } 
    } 
} 
Verwandte Themen