ошибка переиндексации при обновлении наasticsearch 7 - PullRequest
0 голосов
/ 30 октября 2019

В настоящее время мы используем гем searchkick, и он отлично работает. Недавно я попытался обновить эластичный поиск до 7 в своей локальной среде разработки. Я запустил его и использовал homebrew (после исследования, что мне нужно было запустить rm -fr /usr/local/var/lib/elasticsearch). Когда я пошел на переиндексацию одной из моих моделей, я получил следующую ошибку отображения:

Elasticsearch::Transport::Transport::Errors::BadRequest: [400] {"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [cosmetics/products : {properties={product={type=keyword}}}]"}],"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [cosmetics/products : {properties={product={type=keyword}}}]","caused_by":{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [cosmetics/products : {properties={product={type=keyword}}}]"}},"status":400}

Эта ошибка не возникает при использованииasticsearch 6.8.4. Может кто-нибудь указать мне на ресурс для решения этой проблемы?

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Тип отображения не поддерживается в версии 7.
Чтобы решить эту проблему, удалите все типы отображения (например, _doc)

Индексы, созданные в Elasticsearch 6.0.0 или более поздней версии, могут содержать толькоодин тип отображения. Индексы, созданные в 5.x с несколькими типами отображения, будут продолжать функционировать, как и раньше в Elasticsearch 6.x. Типы будут устаревшими в API в Elasticsearch 7.0.0 и полностью удалены в 8.0.0.

Проверьте это

И это

0 голосов
/ 31 октября 2019

В дополнение к отличному ответу @Assael Azran и великолепной ссылке , которой он поделился, вот еще некоторая дополнительная информация:

  1. Если у вас есть индексы, созданные в 5.x илидо этого вам нужно будет переиндексировать их, когда вы находитесь в 6.8 ПЕРЕД обновлением до 7.x
  2. Если у вас есть индексы с несколькими типами, вам нужно переиндексировать их для каждого типа документа.
  3. Имена пользовательских типов, такие как products, в вашем случае должны быть заменены на _doc или doc. В идеале имя типа не должно быть при определении отображений. См. this .
  4. Все ваши снимки 5.x или до, если таковые имеются, не будут работать на 7.x. Поэтому вам нужно восстановить индексы из этих снимков, когда вы находитесь в 6.8, затем повторно индексировать индексы, а затем снова снимок. Затем вы можете удалить индексы, а также удалить старые снимки.

  5. Посмотрите на это обновление ссылка .

Надеюсь, это поможет

...