Je rencontre le problème suivant avec elasticsearch 7 lorsque j'essaie de créer un modèle.
Lorsque j'essaie de copier un modèle d'elasticsearch 6 vers 7 et certains des champs que j'ai supprimés selon elasticsearch 7 .e
POST _template/logstash { "order" : 0, "index_patterns" : [ "logstash*" ], "settings" : { "index" : { "analysis" : { "filter" : { "firsttoken" : { "type" : "pattern_capture", "preserve_original" : "false", "patterns" : [ """^([^\.]*)\.?.*$""" ] }, "secondtoken" : { "type" : "pattern_capture", "preserve_original" : "false", "patterns" : [ """^[^\.]*\.([^\.]*)\.?.*$""" ] }, "thirdtoken" : { "type" : "pattern_capture", "preserve_original" : "false", "patterns" : [ """^[^\.]*\.[^\.]*\.([^\.]*)\.?.*$""" ] } }, "analyzer" : { "firsttoken" : { "filter" : [ "firsttoken" ], "tokenizer" : "keyword" }, "secondtoken" : { "filter" : [ "secondtoken" ], "tokenizer" : "keyword" }, "thirdtoken" : { "filter" : [ "thirdtoken" ], "tokenizer" : "keyword" } } }, "mapper" : { } } }, "mappings" : { "events" : { "properties" : { "msg" : { "type" : "text", "fields" : { "raw" : { "type" : "keyword" } } }, "requestId" : { "type" : "keyword" }, "logger" : { "type" : "keyword" }, "host" : { "type" : "keyword" }, "jwtOwner" : { "type" : "keyword" }, "requestOriginator" : { "type" : "keyword" }, "tag" : { "analyzer" : "firsttoken", "fields" : { "disambiguator" : { "analyzer" : "keyword", "type" : "text" } } }, "jwtAuthenticatedUser" : { "type" : "keyword" }, "thread" : { "type" : "keyword" }, "requestChainOriginator" : { "type" : "keyword" }, "revision" : { "type" : "keyword" } } } }, "aliases" : { } }
Modèle de mappage: Voici le modèle que j'essaie de publier.
{ "error": { "root_cause": [ { "type": "mapper_parsing_exception", "reason": "Root mapping definition has unsupported parameters: [events : {properties={msg={fields={raw={type=keyword}}}, requestId={type=keyword}, logger={type=keyword}, host={type=keyword}, jwtOwner={type=keyword}, requestOriginator={type=keyword}, tag={analyzer=firsttoken, fields={disambiguator={analyzer=keyword, type=text}}}, jwtAuthenticatedUser={type=keyword}, thread={type=keyword}, requestChainOriginator={type=keyword}, revision={type=keyword}}}]" } ], "type": "mapper_parsing_exception", "reason": "Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [events : {properties={msg={fields={raw={type=keyword}}}, requestId={type=keyword}, logger={type=keyword}, host={type=keyword}, jwtOwner={type=keyword}, requestOriginator={type=keyword}, tag={analyzer=firsttoken, fields={disambiguator={analyzer=keyword, type=text}}}, jwtAuthenticatedUser={type=keyword}, thread={type=keyword}, requestChainOriginator={type=keyword}, revision={type=keyword}}}]", "caused_by": { "type": "mapper_parsing_exception", "reason": "Root mapping definition has unsupported parameters: [events : {properties={msg={fields={raw={type=keyword}}}, requestId={type=keyword}, logger={type=keyword}, host={type=keyword}, jwtOwner={type=keyword}, requestOriginator={type=keyword}, tag={analyzer=firsttoken, fields={disambiguator={analyzer=keyword, type=text}}}, jwtAuthenticatedUser={type=keyword}, thread={type=keyword}, requestChainOriginator={type=keyword}, revision={type=keyword}}}]" } }, "status": 400 }
Aidez-moi à résoudre le problème problème. Merci d'avance.
3 Réponses :
Notez vos mappages
. ES post version 7.0, ne prend pas en charge le type
c'est-à-dire les événements
dans ce cas et cela a été obsolète .
Après la version 7.0, vous auriez besoin de créer un index séparé pour chaque type
que vous aviez dans l'index avant la version 7.0.
Ceci link devrait vous aider dans la façon dont vous pouvez migrer de la version 6.x vers 7.x
En gros, votre section mappages
serait la suivante: p >
{ "mappings":{ "properties":{ <---- Notice there is no `events` before `properties` as mentioned in your question "msg":{ "type":"text", "fields":{ "raw":{ "type":"keyword" } } }, "requestId":{ "type":"keyword" }, "logger":{ "type":"keyword" }, "host":{ "type":"keyword" }, "jwtOwner":{ "type":"keyword" }, "requestOriginator":{ "type":"keyword" }, "tag":{ "analyzer":"firsttoken", "fields":{ "disambiguator":{ "analyzer":"keyword", "type":"text" } } }, "jwtAuthenticatedUser":{ "type":"keyword" }, "thread":{ "type":"keyword" }, "requestChainOriginator":{ "type":"keyword" }, "revision":{ "type":"keyword" } } } }
Il y a deux problèmes. Un problème est celui mentionné par @OpsterESNinjaKamal
Mais cela ne fonctionnera toujours pas car le champ tag
n'a pas de type.
Voici le modèle qui fonctionnera:
PUT _template/logstash { "order": 0, "index_patterns": [ "logstash*" ], "settings": { "index": { "analysis": { "filter": { "firsttoken": { "type": "pattern_capture", "preserve_original": "false", "patterns": [ "^([^\\.]*)\\.?.*$" ] }, "secondtoken": { "type": "pattern_capture", "preserve_original": "false", "patterns": [ "^[^\\.]*\\.([^\\.]*)\\.?.*$" ] }, "thirdtoken": { "type": "pattern_capture", "preserve_original": "false", "patterns": [ "^[^\\.]*\\.[^\\.]*\\.([^\\.]*)\\.?.*$" ] } }, "analyzer": { "firsttoken": { "filter": [ "firsttoken" ], "tokenizer": "keyword" }, "secondtoken": { "filter": [ "secondtoken" ], "tokenizer": "keyword" }, "thirdtoken": { "filter": [ "thirdtoken" ], "tokenizer": "keyword" } } }, "mapper": {} } }, "mappings": { "properties": { "msg": { "type": "text", "fields": { "raw": { "type": "keyword" } } }, "requestId": { "type": "keyword" }, "logger": { "type": "keyword" }, "host": { "type": "keyword" }, "jwtOwner": { "type": "keyword" }, "requestOriginator": { "type": "keyword" }, "tag": { "type": "text", <--- add type here "analyzer": "firsttoken", "fields": { "disambiguator": { "analyzer": "keyword", "type": "text" } } }, "jwtAuthenticatedUser": { "type": "keyword" }, "thread": { "type": "keyword" }, "requestChainOriginator": { "type": "keyword" }, "revision": { "type": "keyword" } } }, "aliases": {} }
Oh oui!! Champ @tag
. Je l'ai raté. Merci Val d'avoir répondu à cela. Prise incroyable !!
Désolé vol j'ai manqué l'ajout du modèle d'événements que j'utilise.
Je ne comprends pas?
Désolé, Vol et Opster j'ai manqué l'ajout du modèle d'événements. J'ai supprimé l'événement car il n'accepte pas. Voici le modèle pour les événements.
PUT _template/logstash { "order" : 0, "index_patterns" : [ "logstash*" ], "settings" : { "index" : { "analysis" : { "filter" : { "firsttoken" : { "type" : "pattern_capture", "preserve_original" : "false", "patterns" : [ """^([^\.]*)\.?.*$""" ] }, "secondtoken" : { "type" : "pattern_capture", "preserve_original" : "false", "patterns" : [ """^[^\.]*\.([^\.]*)\.?.*$""" ] }, "thirdtoken" : { "type" : "pattern_capture", "preserve_original" : "false", "patterns" : [ """^[^\.]*\.[^\.]*\.([^\.]*)\.?.*$""" ] } }, "analyzer" : { "firsttoken" : { "filter" : [ "firsttoken" ], "tokenizer" : "keyword" }, "secondtoken" : { "filter" : [ "secondtoken" ], "tokenizer" : "keyword" }, "thirdtoken" : { "filter" : [ "thirdtoken" ], "tokenizer" : "keyword" } } }, "mapper" : { } } }, "mappings" : { "events" : { "properties" : { "msg" : { "type" : "text", "fields" : { "raw" : { "type" : "keyword" } } }, "requestId" : { "type" : "keyword" }, "logger" : { "type" : "keyword" }, "host" : { "type" : "keyword" }, "jwtOwner" : { "type" : "keyword" }, "requestOriginator" : { "type" : "keyword" }, "tag" : { "analyzer" : "firsttoken", "fields" : { "disambiguator" : { "analyzer" : "keyword", "type" : "text" } }, "type" : "text" }, "jwtAuthenticatedUser" : { "type" : "keyword" }, "thread" : { "type" : "keyword" }, "requestChainOriginator" : { "type" : "keyword" }, "revision" : { "type" : "keyword" } } } }, "aliases" : { } }