Je regarde des exemples d'indices à type unique sur ElasticSearch 5.6 pour préparer la suppression des types de mappage. Plus précisément, j'exécute le premier exemple de ElasticSearch page sur la suppression des types , sur un nouveau cluster exécuté localement dans Docker en utilisant le docker.elastic.co/elasticsearch/elasticsearch:5.6.5
image
Exécuter le premier exemple de la section I lié à:
PUT localhost:9200/users
{
"settings": {
"index.mapping.single_type": true
},
"mappings": {
"_doc": {
"properties": {
"name": {
"type": "text"
},
"user_name": {
"type": "keyword"
},
"email": {
"type": "keyword"
}
}
}
}
}
J'obtiens l'erreur suivante:
{
"error": {
"root_cause": [
{
"type": "invalid_type_name_exception",
"reason": "mapping type name [_doc] can't start with '_'"
}
],
"type": "invalid_type_name_exception",
"reason": "mapping type name [_doc] can't start with '_'"
},
"status": 400
}
Je comprends que les champs avec un soulignement de tête dans le nom sont généralement considérés comme réservés aux internes ES; mais je supposais que _doc
serait considéré comme un cas spécial à partir de la version 5.6
, puisque le guide lié mentionne:
Les indices créés dans 6.x n'autorisent qu'un seul type par index. N'importe quel nom peut être utilisé pour le type, mais il ne peut y en avoir qu'un. Le nom de type préféré est _doc afin que les API d'index aient le même chemin d'accès que dans 7.0
Suis-je manquant de quelque chose, comme un paramètre de cluster?
Le document auquel j'ai lié est la version master
. Dans le 6.1
ou 5.6
versions de ce même document, il n'est pas fait mention de _doc
étant le nom préféré; ce qui signifie probablement que la possibilité d'utiliser _doc
comme nom de type de mappage viendra avec le futur 6.x
versions.