Сопоставление объектов Elasticsearch для попытался проанализировать поле [] как объект, но нашел конкретное значение

#elasticsearch #aws-elasticsearch

Вопрос:

В AWS Elasticseach я создал индекс с использованием python и библиотеки Elasticsearch, используя следующую строку кода:

 es.indices.create(TABLE_NAME, body='{"settings": { "index.mapping.coerce": true } }', request_timeout=100)
 

Затем я вставил несколько документов в свой индекс с помощью bulk.

 helpers.bulk(es, action, request_timeout=500)
 

Позже, когда я попытался вставить больше документов, это дало мне эту ошибку:

Сопоставление объектов Elasticsearch для попытался проанализировать поле [] как объект, но нашел конкретное значение

Единственная разница в том, что я изменил тип вставляемого значения (с плавающего на строковое). В этом причина этой ошибки?

Ответ №1:

Да, эта ошибка вызвана изменением типа с float на string.

Таким образом, вы можете либо вставить значение с плавающей точкой, либо удалить индекс, используя следующую команду, и вставить все значения снова.

 es.indices.delete(index=TABLE_NAME)
 

ПРИМЕЧАНИЕ: Не используйте эту команду, если у вас нет старых документов. Эта команда безвозвратно удалит полный индекс вместе со всеми содержащимися в нем документами.