如果sphinx在运行中,要indexer时,需要加上--rotate参数,这样索引完就直接生效了。
原因是sphinx的searchd在启动时会创建一个.sql锁文件,因为这时已经标志sphinx正在运行中,除非使用--rotate。
rotate运行机制
-》indexer完成索引
-》发送SIGHUP给searchd(同时在终端输出索引已经 完成)
-》searchd接到中断信号-》等待所有子进程退出
-》重命名 当前索引为旧索引为.old
-》重命名 .new索引文件作为当前索引
-》尝试加载索引文件-》如果加载失败,searchd会把.old文件回滚为当前文件,并把刚建立的新索引重命名为.new
-》加载成的话,完成无缝切换
-----------------------------------------------------------------------------------------------
手动重启的两种方法:
1
关闭 searchd:killall -9 searchd
重启 searchd:searchd -c ./sphinx.conf
2
关闭 searchd --stop
启动 searchd
原文链接: http://www.t086.com/article/5173
时间: 2024-10-17 15:40:40