怎样解决Elasticsearch type 不一致导致写入数据失败的问题

2023-04-08 04:35:00 写入 导致 失败

当我们在使用elasticsearch时,有时会遇到type不一致导致写入数据失败的问题。这是由于elasticsearch的type在6.0版本之后已经被废弃了,所以我们在使用elasticsearch时,需要注意type的一致性。

解决方法:

首先,我们需要在elasticsearch的配置文件中添加type.allocation.require_name=true,这样就可以在创建索引时指定type。

然后,我们可以使用elasticsearch的update by query api来更新已有的数据。

例如,我们可以使用以下命令来更新type为foo的索引中的type为bar的数据:

POST /_update_by_query?conflicts=proceed { "script": { "source": "ctx._type = 'foo'" }, "query": { "term": { "_type": "bar" } } }

最后,我们需要使用elasticsearch的reindex api来重建索引。

例如,我们可以使用以下命令来重建type为foo的索引:

POST _reindex { "source": { "index": "foo" }, "dest": { "index": "bar" } }

这样就可以解决type不一致导致写入数据失败的问题了。

相关文章