1.簡介
reindex指重建所有資料的過程,一般在mapping設定變更(字段類型和分詞器字段更新)、index設定變更(分片和副本數更改等)以及資料遷移場景下使用。elasticsearch提供了兩個現成的API用于完成該工作,一個是在現有索引上重建的_update_by_query,另一個是在其它索引上重建的_reindex。
POST /blog_comment_index/_update_by_query?conflicts=proceed
{
"script": {
"source": "ctx._source.likes++",
"lang": "painless"
},
"query": {
"match": {
"author": "steven"
}
}
}
- conficts:如果遇到版本沖突,覆寫并繼續執行
- script:以程式設計語言的方式去更新文檔的字段值
- query:按照條件去更新部分文檔
POST /_reindex
{
"conflicts": "proceed",
"source": {
"index": "blog_comment_index",
"query": {
"match": {
"author": "steven"
}
}
},
"dest": {
"index": "blog_comment_index_new"
}
}