2011-05-15 154 views
2

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

我试图运行这个 须藤的/ usr/local/bin目录/的searchd --config /usr/local/etc/sphinx-vb.conf

,并得到这个错误 FATAL:未能锁定pid文件'/usr/local/var/log/searchd.pid':资源暂时不可用(searchd已经在运行?)

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

+0

我想我想通了。这似乎是什么在为我工作,以防其他人看到这一点,并希望做同样的事情。创建一个新的目录并在该目录下创建一个新的searchd.pid。只需创建一个名为searchd.pid的空白文件,并使用您的配置脚本指向它,然后运行sphinx。我不知道这是我应该怎么做,但它似乎以这种方式工作。我仍然接受任何建议。谢谢。 – chris 2011-05-15 01:15:32

+0

克里斯我也有同样的问题,你重复整个狮身人面像目录? – 2015-07-31 21:40:59

回答

3

克里斯,你已经注意到你的问题和你的评论 - 你需要为每个searchd进程使用不同的端口,不同的pid文件。不同的日志文件可能是一个好主意太:)

2

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

没有,你可以使用他们多,你需要。

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

不确定您是否需要另一个实例来满足您的需求。我的意思是运行sphinx-vb.conf文件。正如替代了不同的实例,你可以在狮身人面像,vb.conf文件中创建不同的来源和运行都CONFIGS索引中包含相同的实例:

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'); 
+0

但是如何处理mysql实例?目前我的两个单独的sphnx实例是冲突的,因为它们正在写入相同的数据库! (索引名称相同) – 2016-11-30 23:55:55

+0

您可以在配置文件中设置的索引名称 – DoanldF 2016-12-01 11:44:28

+0

我的意思是您可以在_sphinx.conf_中使用**索引my_first_sphinx_index **并在_sphinx1.conf_中使用索引my_first_sphinx_index1 **,但在这种情况下,我建议在另一个端口上运行另一个sphinx实例_sphinx1。conf_ – DoanldF 2016-12-01 11:47:04