旋转与重启狮身人面像

Rotating vs Restarting Sphinx

我有一个配置文件需要很长时间才能使用索引器进行轮换,例如

indexer --config /home/indexer/MyConfig.conf.php  --rotate idx_Big

我可以接受,但有时当我想测试更新的配置时,它可能会中断或无法提供预期的结果。通常我做的是

  1. 将配置还原为原始工作设置
  2. Index/Rotate 再一次

但是我想知道我是否可以将 'good' 索引从 sphinx 访问的目录(例如 root)中复制出来,index/rotate 新的,然后如果我不喜欢结果, 而不是再做一个小时 index/rotate 回到旧索引,只需将新索引的 idx 复制到我保存在 root 中的那个然后 stop/restart 例如..

/usr/bin/searchd -c /home/indexer/MyConf.php --stop
/usr/bin/searchd -c /home/indexer/MyConf.conf.php

是的,我确实知道 conf 仍然是我不喜欢的更改,但更大的问题仍然与我的个人情况相关;我可以用保存的版本替换我轮换的索引并重新启动以回到原来的位置,还是我需要 index/rotate 旧设置才能这样做?

do I need to index/rotate the old settings to do so?

你可以测试它是否有效。我不知道Sphinx,但看起来很简单:

  1. 停止 Sphinx program/service.
  2. 将索引文件夹移动到您想要的位置。
  3. 备份您的默认配置文件,您的索引文件夹绑定到。
  4. 创建您要测试的新配置文件。
  5. 如你所愿开始Sphinx测试

当您想返回备份设置后,过程类似:

  1. 停止 Sphinx program/service.
  2. 删除索引文件夹。
  3. 从您上次放置的任何其他位置恢复索引文件夹。
  4. 将默认配置文件的备份恢复到它原来所属的位置。
  5. 如你所愿开始Sphinx测试

现在,您无需等待一小时即可让 Sphinx 再次建立索引,因为您已将所有内容都放置到位。应用程序不应该知道你的快速忍者动作。

如果它不起作用,Sphinx 可能是更改了其他文件而不是您正在备份的文件。

是的,你可以做到。

  1. 复制索引out时,最好不要复制.spl(锁定)文件。复制回来可能会混淆狮身人面像。

  2. 最好在 searchd 关闭时将索引 back 复制到 sphinx 文件夹。覆盖索引文件可能会混淆 and/or 崩溃狮身人面像。没什么大不了的,因为你要停止它并且显然不关心损坏的索引,但最好减少混淆副作用的机会。

如果想看中.....

  • 可以将旧索引复制回来,在索引名称后附加“.new”(例如 index.spd 变为 index.new.spd),而不是覆盖活动文件,然后发送 searchd sighup 信号。 Searchd 然后将无缝地加载此 new 版本(实际上只是旧版本)。这是使用与将新版本加载到 searchd 中相同的旋转方式,只需这样做 'manually'.