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)
注意:如果您没有旧文档,请不要使用此命令。此命令将永久删除完整索引及其中的所有文档。
在 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)
注意:如果您没有旧文档,请不要使用此命令。此命令将永久删除完整索引及其中的所有文档。