本文主要是介绍Elasticsearch reindex操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求
我有一个index:test_1
,这个index由于各种原因,mapping中出现了下面的type:
"u_ori_id_list" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}}
我想将u_ori_id_list
的类型改为keyword
,而且不想丢数据,因此使用Elasticsearch中的reindex
来解决。
解决办法
我目前使用的Elasticsearch版本是7.17.7
。
首先在目标索引test_2
,并将u_ori_id_list
字段设置为:
"u_ori_id_list" : {"type" : "keyword"
}
然后执行下面的语句:
POST _reindex
{"source": {"index": "test_1"},"dest": {"index": "test_2"}
}
由于这一过程可能很长,所以最好不要在kibana中执行,而是使用curl的方式执行。
curl -X POST -H "Content-Type: application/json" http://10.26.120.31:9200/_reindex -d '
{"source": {"index": "test_1","size": 100},"dest": {"index": "test_2"}
}'
并且如果不设置"size":100
,那么默认的操作是1000
,如果数据量太大则会报错:
{"error":{"root_cause":[{"type":"es_rejected_execution_exception","reason":"rejected execution of coordinating operation [coordinating_and_primary_bytes=0, replica_bytes=0, all_bytes=0, coordinating_operation_bytes=859110825, max_coordinating_and_primary_bytes=858993459]"}],"type":"es_rejected_execution_exception","reason":"rejected execution of coordinating operation [coordinating_and_primary_bytes=0, replica_bytes=0, all_bytes=0, coordinating_operation_bytes=859110825, max_coordinating_and_primary_bytes=858993459]"},"status":429}
所以最好设置"size":100
这篇关于Elasticsearch reindex操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!