Elasticsearch 对象映射试图将字段 [] 解析为对象,但找到了一个具体值

Elasticsearch object mapping for tried to parse field [] as object, but found a concrete value

在 AWS Elasticseach 中,我使用以下代码行使用 python 和 Elasticsearch library 创建了一个索引:

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

然后我使用 bulk 在我的索引中插入了一些文档。

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

稍后,当我尝试插入更多文档时,出现了这个错误:

Elasticsearch 对象映射试图将字段 [] 解析为对象,但找到了一个具体值

唯一的区别是我更改了插入值的类型(从浮点型到字符串)。这是导致此错误的原因吗?

是的,这个错误是由于类型从 float 更改为 string。

因此,您可以插入一个浮点值,也可以 delete the index 使用以下命令并再次插入所有值。

es.indices.delete(index=TABLE_NAME)

注意:如果您没有旧文档,请不要使用此命令。此命令将永久删除完整索引及其中的所有文档。