2017-12-18 2 views
0

Ich bin derzeit bemüht, meine Mapping-Vorlage Dateien für Elasticsearch zu vereinfachen. In der Tat habe ich mehrere Object Felder, die die gleiche Struktur haben (z. B. Quelle und Ziel hier)Elasticsearch dynamische Vorlage, um mehrere exakte Felder zu entsprechen

Gibt es eine Möglichkeit zum Einrichten der dynamischen Vorlage, so dass es mehrere Muster übereinstimmen kann?

Hier ist, was ich ausführen:

POST /_template/mapping-lol 
{ 
    "template": "*-newevents-*", 
    "mappings": { 
    "log": { 
     "dynamic_templates": [ 
     { 
      "system": { 
      "match_pattern": "regex", 
      "match": "^(source|destination)$", 
      "mapping": { 
       "properties": { 
       "name": { 
        "dynamic": false, 
        "type": "object", 
        "properties": { 
        "first": { 
         "type": "text" 
        }, 
        "last": { 
         "type": "text" 
        } 
        } 
       }, 
       "ip": { 
        "type": "ip" 
       } 
       } 
      } 
      } 
     } 
     ], 
     "properties": { 
     "source": { 
      "type": "object", 
      "dynamic": true 
     }, 
     "destination": { 
      "type": "object", 
      "dynamic": true 
     } 
     } 
    } 
    } 
} 

POST /tenant-newevents-1/log 
{ 
    "source": { 
    "name": { 
     "first": "John", 
     "last": "Doe" 
    }, 
    "ip": "1.2.3.4" 
    }, 
    "destination": { 
    "name": { 
     "first": "Jane", 
     "last": "Doe" 
    }, 
    "ip": "3.4.5.6" 
    } 
} 

GET /tenant-newevents-1 

Das oben funktioniert nicht ...

ich viele dieser gleichen Regelungen haben zu entsprechen (~ 20).

Vielen Dank für Ihre Hilfe!

+0

Sieht gut aus für mich. Gerade auf ES 5 und 6 versucht und es hat gut geklappt. Bitte zeigen Sie, wie Sie Ihren Index/Ihr Mapping erstellen? – Val

+0

curl -XPOST "locallhost: 9200/_template/mapping-events" [email protected] – moutonjr

+0

gute Eins !! Was ist mit dem Inhalt von mymapping.json? – Val

Antwort

0

OK fand ich heraus, was schief gelaufen ist: Die Felder müssen nicht bei allen für die dynamische Zuordnung gehen abgebildet werden. Entfernen von "Quell" - und "Ziel" -Schemata im Mapping funktioniert.

POST /_template/mapping-lol 
{ 
    "template": "*-newevents-*", 
    "mappings": { 
    "log": { 
     "dynamic_templates": [ 
     { 
      "system": { 
      "match_pattern": "regex", 
      "match": "^(source|destination)$", 
      "mapping": { 
       "properties": { 
       "name": { 
        "dynamic": false, 
        "type": "object", 
        "properties": { 
        "first": { 
         "type": "text" 
        }, 
        "last": { 
         "type": "text" 
        } 
        } 
       }, 
       "ip": { 
        "type": "ip" 
       } 
       } 
      } 
      } 
     } 
     ], 
     "properties": {} 
    } 
    } 
} 
+0

Das war mein nächster Kommentar ;-) Es macht keinen Sinn, sie zuzuordnen, wenn Sie dynamische Vorlagen dafür haben. – Val

Verwandte Themen