sujingjhong.com


除錯日記#2 Elasticsearch refresh_inverval

同事反應在服務上搜尋不到幾筆資料;但直接用文件識別碼 _id ,是可以在搜尋引擎(elasticsearch)上找到。

我們嘗試了幾種方式確認問題:

  • 以日期排序發現資料停留在 2023 年。
  • 將關鍵字拆解丟進去,只能找到 2023 年前的資料。

檢查爬蟲資料是正確無誤,也有寫入 elasticsearch,檢查 mapping 也看不出異常。

後來我人工比對不同資料集的索引資料,發現找不到資料的有 refresh_inverval: -1

回想到之前在做 elasticsearch 升級時,需要重新索引資料,因為資料量很大,所以把 ES 的索引間隔關閉,在手動觸發去做批次索引。

看來就是那次關閉後,忘記開啟,導致後續資料無法正確索引。

直接透過 API 開啟後,就解決問題:

curl -X PUT /{es_index}/_settings -H 'content-type: application/json' -d '{"index" : {"refresh_interval" : null}}'

參考資料 #