web-dev-qa-db-fra.com

Impossible de créer deux types pour le même index elasticsearch et Kibana

Je suis nouveau dans Elasticsearch et Kibana

Je fais quelques exercices avec elasticsearch (création d'index, de types et de documents ..)

J'ai créé un index 'business' avec le type 'building'

put /business/building/217
{
  "adresse":"11 Pen Ave",
  "floors":5,
  "offices":7,
  "loc":{
    "lat":40.693479,
    "lon":-73.983854
  }
}

ça marche drôle mais quand j'ai essayé de créer un autre type comme celui-ci

put /business/employee/330
{
  "name":"Richard Bell",
  "title":"Senior Accountant",
  "salar_usd":115000.00,
  "hiredate":"Jan 19, 2013"
}

alors j'ai eu cette erreur

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Rejecting mapping update to [business] as the final mapping would have more than 1 type: [employee, building]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Rejecting mapping update to [business] as the final mapping would have more than 1 type: [employee, building]"
  },
  "status": 400
}
22
YK mar

Vous exécutez probablement Elasticsearch version 6 et à partir de cette version ES ne vous permet pas de créer plus d'un type dans un index donné.

Vous devez stocker chacun de vos types de documents dans un index dédié, par ex.

PUT /business/building/217
{
  "adresse":"11 Pen Ave",
  "floors":5,
  "offices":7,
  "loc":{
    "lat":40.693479,
    "lon":-73.983854
  }
}

PUT /employees/employee/330
{
  "name":"Richard Bell",
  "title":"Senior Accountant",
  "salar_usd":115000.00,
  "hiredate":"Jan 19, 2013"
}
40
Val

voir https://www.elastic.co/guide/en/elasticsearch/reference/6.2/removal-of-types.html pour en savoir plus.

Elasticsearch 6.x 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, de sorte que les API d'index ont le même chemin d'accès que dans 7.0: PUT {index}/_ doc/{id} et POST {index}/_ doc

1
Richard