После изменения свойства со строки на объект, elasticsearch больше не может индексировать объект данных.

У меня есть несколько объектов в базе данных Firebase, которые я использую вместе с ElasticSearch для выполнения сложных запросов.

Однако, когда мне пришлось изменить свойство в одном из этих объектов со строки organizer: "some name" на organizer: {id: "someId", name: "some name"}, ElasticSearch больше не может индексировать объект, говоря:

[mapper_parsing_exception] failed to parse [organizer] Can't get text on a START_OBJECT

Объекты данных, которые остаются как organizer: "", правильно индексируются, а новые структурированные объекты - нет. Я не понимаю, почему это происходит, поскольку я не предоставляю пользовательское сопоставление этих объектов (я использую Firebase Flashlight, чтобы упростить задачу).

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


person Chrillewoodz    schedule 21.04.2017    source источник


Ответы (1)


Когда вы проиндексировали organizer: "some name" в первый раз, было создано новое поле типа string (или text).

Теперь вы пытаетесь проиндексировать organizer: {id: "someId", name: "some name"}, который больше не строка, а object, так что это не сработает.

Вам нужно удалить свой индекс и правильно переиндексировать свои данные.

person Val    schedule 21.04.2017
comment
Как удалить индекс? - person Chrillewoodz; 21.04.2017
comment
С DELETE index - person Val; 21.04.2017
comment
Круто, рад, что помогло! - person Val; 21.04.2017