Невозможно создать два типа для одного и того же индекса elasticsearch & Kibana
Я новичок в elasticsearch и kibana
Я делаю некоторые упражнения с elasticsearch (создайте индекс, типы и документы..)
Я создал индекс "бизнес" с типом "здание"
put /business/building/217
{
"adresse":"11 Pen Ave",
"floors":5,
"offices":7,
"loc":{
"lat":40.693479,
"lon":-73.983854
}
}
он работает смешно, но когда я попытался создать другой тип, подобный этому
put /business/employee/330
{
"name":"Richard Bell",
"title":"Senior Accountant",
"salar_usd":115000.00,
"hiredate":"Jan 19, 2013"
}
то я получил эту ошибку
{
"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
}
Ответы
Ответ 1
Вероятно, вы используете версию Elasticsearch версии 6, и с этой версии ES не позволяет создавать более одного типа в любом заданном индексе.
Вам необходимо сохранить каждый тип документа внутри выделенного индекса, например
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"
}
Ответ 2
см. https://www.elastic.co/guide/en/elasticsearch/reference/6.2/removal-of-types.html для получения дополнительной информации.
Elasticsearch 6.x Индексы, созданные в 6.x, допускают только один тип для каждого индекса. Любое имя может быть использовано для типа, но может быть только одно. Предпочтительным именем типа является _doc, поэтому индексные API имеют тот же путь, что и в 7.0: PUT {index}/_ doc/{id} и POST {index}/_ doc