Sphinx 旋转与重新启动斯芬克斯

Sphinx 旋转与重新启动斯芬克斯,sphinx,Sphinx,我有一个配置文件,使用索引器旋转需要很长时间,例如 indexer --config /home/indexer/MyConfig.conf.php --rotate idx_Big 我可以接受这种情况,但有时当我想测试更新的配置时,它可能会中断或无法提供所需的结果。通常我做的是 将配置恢复为原始工作设置 再次索引/旋转 但是,我想知道我是否可以从sphinx访问目录(例如root)中复制“good”索引,索引/旋转新索引,然后如果我不喜欢结果,而不是执行另一个长达一小时的索引/旋转回旧索引

我有一个配置文件,使用索引器旋转需要很长时间,例如

indexer --config /home/indexer/MyConfig.conf.php  --rotate idx_Big
我可以接受这种情况,但有时当我想测试更新的配置时,它可能会中断或无法提供所需的结果。通常我做的是

  • 将配置恢复为原始工作设置
  • 再次索引/旋转
  • 但是,我想知道我是否可以从sphinx访问目录(例如root)中复制“good”索引,索引/旋转新索引,然后如果我不喜欢结果,而不是执行另一个长达一小时的索引/旋转回旧索引,只需将新索引的idx与我保存在root中的idx一起复制,然后停止/重新启动,例如

    /usr/bin/searchd -c /home/indexer/MyConf.php --stop
    /usr/bin/searchd -c /home/indexer/MyConf.conf.php
    
    是的,我确实知道conf仍然是一个我不喜欢的变化,但更大的问题仍然与我的个人情况有关;我是否可以用保存的版本替换我旋转的索引,然后重新启动以返回到原来的位置,或者我是否需要索引/旋转旧设置才能这样做

    我是否需要索引/旋转旧设置才能执行此操作

    您可以测试它是否有效。我不知道斯芬克斯,但似乎很简单:

  • 停止
    Sphinx
    程序/服务
  • 将索引文件夹移动到您想要的位置
  • 备份您的默认配置文件,您的索引文件夹已绑定到
  • 创建要测试的新配置文件
  • 启动
    Sphinx
    进行测试
  • 当您想使用备份设置返回时,过程与此类似:

  • 停止
    Sphinx
    程序/服务
  • 删除索引文件夹
  • 从上次放置索引文件夹的任何位置还原该文件夹
  • 将默认配置文件的备份还原到它最初所属的位置
  • 启动
    Sphinx
    进行测试
  • 现在,您不需要等待一个小时,等待
    Sphinx
    再次索引,因为您已将所有内容放置到位。应用程序不应该知道你的快速忍者动作

    如果不起作用,
    Sphinx
    可能会更改备份文件以外的其他文件。

    是的,您可以这样做

  • 复制索引时,最好不要复制
    .spl
    (锁定)文件。把它复制回去可能会把斯芬克斯搞糊涂

  • 在关闭
    searchd
    时,最好将索引复制回sphinx文件夹。覆盖索引文件可能会混淆和/或使sphinx崩溃。这没什么大不了的,因为你将要停止它,而且显然不关心当前的指数,但最好是减少令人困惑的副作用

  • 如果你想变得花哨

    • 只需将旧索引复制回,并将“.new”附加到索引名称(例如
      index.spd
      变为
      index.new.spd
      ),而不是覆盖活动文件,然后发送searchd
      sighup
      信号。然后Searchd将无缝地加载这个新版本(实际上又是旧版本)。这与rotate将新版本加载到searchd时使用的方法相同,只是“手动”而已