Dans l'exemple ci dessous on créé un index nommé test
et on defini son mapping avec un Dynamic_tamplates de façon a ce que
{}
et les []
car il y a une subtilité dans le tableau “dynamic_templates”
il doit etre sous la forme
"dynamic_templates": [ { "truc": {..} } , { "machin":{..} } ]
et NON PAS sous cette forme
"dynamic_templates": [ "truc": {..} , "machin":{..} ]
concentrez-vous sur les {}
[ { "truc": {..} } ] => [ "truc": {..} ]
Je me permet d'insister sur le point ci-dessus, parce j'en ai personnellement ch… à trouver d'ou venez cette erreur
“reason”: “A dynamic template must be defined with a name”
PUT test { "mappings": { "_doc": { "dynamic_templates": [ { "keywords": { "match": "k*", "mapping": { "type": "keyword" } } }, { "strings": { "match": "s*", "mapping": { "type": "text" } } } ] } } }
Dans le cas ou un Dynamic_templates est déjà défini dans le mapping, pour le modifier on utilise le code suivant
Avec PUT %INDEX%/_mapping/%TYPE%
PUT test/_mapping/_doc { "dynamic_templates": [ { "keywords": { "match": "k*", "mapping": { "type": "text" } } } ] }