如何运行sphinx的多个实例?

时间:2011-05-15 00:52:23

标签: sphinx

我有一个搜索引擎,我运行sphinx,现在我用sphinx运行我的vbulletin论坛。唯一的问题是sphinx只允许你使用一个配置文件“sphinx.conf”,我现在有2个并且必须使用2.所以现在我有sphinx.conf和sphinx-vb.conf。如何运行searchd的第二个实例以便我使用sphinx-vb.conf文件?我需要2运行的原因是我有不同的索引需求和cron作业,什么不是,它会使事情变得更容易。我已经遍布谷歌,无法弄清楚如何运行另一个sphinx实例。我知道我还需要在另一个端口上运行,所以我的第二个端口将比原始端口高出1,这将是9313.有谁知道怎么做?感谢。

我试图运行它 sudo / usr / local / bin / searchd --config /usr/local/etc/sphinx-vb.conf

并收到此错误 致命:无法锁定pid文件'/usr/local/var/log/searchd.pid':资源暂时不可用(searchd已经在运行?)

但当然正在运行。它正在为搜索引擎运行。

2 个答案:

答案 0 :(得分:3)

Chris,正如您在问题和评论中所指出的那样 - 您需要为每个搜索过程使用不同的端口,不同的pid文件。不同的日志文件也可能是一个好主意:)

答案 1 :(得分:2)

  

唯一的问题是sphinx只允许你使用一个配置文件“sphinx.conf”

不,你可以根据需要使用它们。

  

如何运行searchd的第二个实例以便我使用sphinx-vb.conf文件?我需要2运行的原因是我对索引有不同的需求,并且有cron作业,什么不是,它会让事情变得更容易。

不确定您是否需要其他实例来满足您的需求。我的意思是运行sphinx-vb.conf文件。作为不同实例的替代方法,您可以在sphinx-vb.conf文件中创建不同的源,并使用相同的实例运行两个配置索引:

1 * * * * indexer --config /etc/sphinxsearch/sphinx.conf --all --rotate
* 2 * * * indexer --config /etc/sphinxsearch/sphinx-vb.conf --all --rotate

然后在具有相同连接的同一端口上运行它,但对不同的源进行查询。例如,使用 sphinxapi.php

$sphinx->SetServer( "localhost", 9312 );
$result1 = $sphinx->Query('','firstSource');
...
$result1 = $sphinx->Query('','sourceVb');