如果sphinx在執行中,要indexer時,需要加上--rotate引數,這樣索引完就直接生效了。
原因是sphinx的searchd在啟動時會建立乙個 .spl 鎖檔案,並在關閉時會刪除它。在indexer建立索引時如果發現有 .spl檔案,則不會建立新索引,因為這時已經標誌sphinx正在執行中,除非使用 –rotate。
rotate執行機制
->indexer完成索引
->傳送sighup 給searchd(同時在終端輸出索引已經完成)
->searchd接到中斷訊號->等待所有子程序退出
->重新命名 當前索引為舊索引為 .old
->重新命名 .new 索引檔案作為當前索引
->嘗試載入當前索引檔案->如果載入失敗,searchd會把.old檔案回滾為當前檔案,並把剛建立的新索引重新命名為 .new
->載入成的話:完成無縫切換
手動重啟的兩種辦法:
1.
關閉searchd :killall -9searchd
重啟 searchd :searchd -c ../sphinx.conf
2.
關閉:searchd --stop啟動:searchd
sphinx rotate機制詳解
今日,發現sphinx出現 sphinx.new.sp 諸多檔案。出現這樣的情況是因為 searchd沒有載入新索引檔案。遂google之,到sphinx官網論壇後得知rotate的機制後方解決!sphinx的searchd在啟動時會建立乙個 spl 鎖檔案,並在關閉時會刪除它。在indexer建立...
sphinx rotate機制詳解
今日,發現sphinx出現 sphinx.new.sp 諸多檔案。出現這樣的情況是因為 searchd沒有載入新索引檔案。遂google之,到sphinx官網論壇後得知rotate的機制後方解決!sphinx的searchd在啟動時會建立乙個 spl 鎖檔案,並在關閉時會刪除它。在indexer建立...
sphinx rotate機制詳解
sphinx的searchd在啟動時會建立乙個 spl 鎖檔案,並在關閉時會刪除它。在indexer建立索引時如果發現有 spl檔案,則不會建立新索引,因為這時已經標誌sphinx正在執行中,除非使用 rotate。roate執行機制 indexer完成索引 傳送sighup 給searchd 同時...