web-dev-qa-db-fra.com

Le nom du type de mappage "_doc" n'est pas accepté dans ElasticSearch 5.6

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?

15
AdrienF

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.

13
AdrienF