如果你也是將 Elastic 當作搜尋快取再使用的話,一定也會常常碰到一些情況需要 Reindex。
我們一開始在使用的時候常碰到幾個問題,Logstash 沒指定 db 欄位的 type,到了 elastic 上後結果跟預期不符,或是 db / elastic 上的資料不一致等等問題,這時候我們需要的就是 reindex。
以下就是 reindex 的步驟與一些注意事項。
先開新的 index 假設叫做 member,後面我們加上版本號 member_version_1
如果有需要可以先指定 field 的 type
在 reindex 的時候就不要 copy 這欄的資料,用 ingest node 搭配 pipeline
先新增 ingest node
準備 OK 開始 reindex
通常 reindex 都需要一段時間為避免 timeout 加上 wait_for_completion,會回傳 task 的 id,可以在用 task 查詢 reindex 的狀況。
接下來要設定 alias,如果原本的 index 就叫 member 沒有加上 version 的話,我們就只能先刪掉原本的 index,再加上 alias
加上 alias
如果原本就有設定 alias 的話要先移除
結束,以上就是盡可能平滑無痛 reindex 的步驟,透過 alias 的方式,基本上對前端查詢不會有什麼影響,就算要花一段時間重建也不用擔心囉!
發佈留言