使用Python重新索引Elasticsearch
首先
- あるindexを作りなおしたい(=reindex)ときにBulk APIを使ってインサートするのが推奨されている。とくに本番環境とかではないので、Aliasうんたらっていうのは不要でしたので、Python APIで実施したときの調べたメモ。
Elasticsearch 弹性搜索
确认
- 
- Bulk で入れる前にElasticSearchのインデクシングを高速化するを一読。とても参考になりました。
 
レプリカシャードを0に設定
コミットの頻度を変更
_allフィールドを無効化
创建一个新的指标
- 前のindexで設定し忘れたシャードの数とか、マッピングとかを正しく入れる。
PUT 'XXX.XXX.XXX.XXX:9200/[new index]' -d '
index :
    number_of_shards : 3
    number_of_replicas : 0
'
批量 API(使用 Python)
可以使用以下方法阅读Helpers文档。
from elasticsearch import Elasticsearch
from elasticsearch import helpers
es = Elasticsearch(host="XXX.XXX.XXX.XXX", port=9200)
helpers.reindex(es, source_index = "old-index", target_index = "new-index")
推荐将索引的大小控制在大约10MB左右。请查看以下参考内容:考虑Elasticsearch索引性能的因素。
最后
- Bulk API簡単でよかったです。
请参考
- 
- Helpers
 
- 
- Elasticsearch + Pythonでバルクインサート(helpers.bulk)
 
- 
- ElasticSearchのインデクシングを高速化する
 
- Elasticsearchインデクシングパフォーマンスのための考慮事項
 
    