Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 9077|Ответ: 0

Elasticsearch:No handler for type [string] declared on field[XX]的解决办法

[Скопировать ссылку]
Опубликовано 09.01.2019 10:29:11 | | | |
Причина ошибки

{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "Нет обработчика для типа [строка], объявленного в поле [upload_status]"
}
],
"type": "mapper_parsing_exception",
"reason": "Нет обработчика для типа [строка], объявленного в поле [upload_status]"
},
«Статус»: 400
}


Я использую Elasticsearch версии 6.2.2, и при создании полей согласно документации школы использую {"type":"string","index":"not_analyzed"}.

Анализ причин

После проверки орфографии я решил проверить новую версию функций Elasticsearch, потому что раньше я уже наступал на проблему с установкой плагина для головы из-за проблемы с версией.
И действительно, Elasticsearch ввёл текст и ключевое слово из 5.X, где ключевые слова применяются к несегментационным полям и могут точно совпадать только при поиске, при этом строка сохраняется.

Прибыл6.X полностью удаляет струнуЗаканчивать.

Кроме этогоЗначение «index» может быть только булевой переменной

Обходной путь

{"type":"text","index":false}

Таким образом, модификация json выглядит следующим образом:

Но есть новые ошибки, которые следующие:

{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Отказ от обновления карты на [restraunt], так как окончательное отображение будет иметь более одного типа: [запись, информация]"
}
],
"type": "illegal_argument_exception",
"reason": "Отказ от обновления карты на [restraunt], так как окончательное отображение будет иметь более одного типа: [запись, информация]"
},
«Статус»: 400
}
Это связано с тем:Важное изменение в Elasticsearch 6.x, где Mapping поддерживает только один тип。 Индексы, созданные в 5.x с несколькими типами отображения, будут продолжать работать в Elasticsearch 6.x, как и раньше. Типы отображения будут полностью удалены в Elasticsearch 7.0.0.

После выхода Elasticsearch 7.x параметр в typeURL становится необязательным. Например, для индексирования документов больше не требуется тип документа

Ресурсы:

https://github.com/sirensolutions/sentinl/issues/257
https://www.elastic.co/guide/en/ ... moval-of-types.html







Предыдущий:Шифрование MD5
Следующий:Как код C# заставляет ваш компьютер выключаться, перезагружаться, выходить, блокироваться, выключаться...
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com