Исключение Elasticsearch 1.2.1: отображение корневого типа не пусто после разбора
После обновления до Elasticsearch 1.2.1
я продолжаю получать следующее исключение при следующем отображении:
{
"tags": {
"properties": {
"tags": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
Это исключение:
Caused by: org.elasticsearch.index.mapper.MapperParsingException: Root type mapping not empty after parsing! Remaining fields: [tags : {properties={tags={index=not_analyzed, type=string}}}]
at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:265)
at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:189)
at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:387)
at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:253)
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:363)
Почему это?
Ответы
Ответ 1
@Mark, похоже, это ошибка в 1.2.X. Было несколько других, которые сообщали о подобных проблемах, я буду ссылаться на билеты ниже. Похоже, что они затягиваются в синтаксисе для сопоставлений в 1.2.X, но они, похоже, вызвали некоторые проблемы с ранее действительными сопоставлениями. Ваш пример.
Я предлагаю вам открыть отчет об ошибке - больше энергии в цифрах. С удовольствием звоню, говоря "я тоже", если вы откроете билет, так как я воссоздал проблему на 1.2.1.
На данный момент я смог выполнить следующие действия, которые, как я считаю, дают вам желаемый результат:
curl -XPUT localhost:9200/yourindexname -d
'{
"mappings":
{
"tags":
{
"properties":
{
"tags":
{
"type":"string",
"index":"not_analyzed"
}
}
}
}
}'
Билеты:
https://github.com/elasticsearch/elasticsearch/issues/6414
https://github.com/elasticsearch/elasticsearch/issues/6304
https://github.com/elasticsearch/elasticsearch/issues/6415
Ответ 2
Это поможет вам
вы захотите, чтобы вы
curl -XPUT localhost:9200/new_index -d '
{
"mappings": {
"tags": {
"properties": {
"tags": {
"type":"string",
"index":"not_analyzed"
}
}
}
}
}'
или вы также можете сделать это
curl -XPUT localhost:9200/new_index/new_index_type/_mappings -d '
{
"new_index_type": {
"properties": {
"tags": {
"type": "string",
"index": "not_analyzed"
}
}
}
}'
Ответ 3
У меня была такая же проблема, потому что у меня были сопоставления с одним типом в каталоге эластичных config/mappings
. Удаление файла сопоставления передало мою проблему.