sphinx


原文链接: sphinx

MySQL查询过程中出现lost connection to mysql server during query 的解决办法?

  1. 调整配置文件max_allowed_packet


sphinx 中indexer的 --rotate 运行机制

如果 sphinx 在运行中,要 indexer 时,需要加上 --rotate 参数,这样索引完就直接生效了。

原因是 sphinx 的 searchd 在启动时会创建一个 .spl 锁文件,并在关闭时会删除它。在 indexer 创建索引时如果发现有 .spl 文件,则不会创建新索引,因为这时已经标志 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

`