开源搜索引擎Sphinx 中启动多个搜索进程的方法

http://blog.163.com/yang_jianli/blog/static/1619900062010316504471/

要在同一机器上启动多个sphinx搜索进程searchd,必须为不同的进程指定不同的配 置文件(sphinx.conf ),其中搜索进程的端口号不能相同,即 listen = 0.0.0.0:3312 中的默认端口3312 必须更改为一个系统不在使用的端口。如果要指定不同的数据库,必须更改:

  sql_db = dbname

  sql_host = 192.168.1.100

  sql_pass = username

  sql_user =password

  sql_port = 3306

配置文件中的index名称也不能相同,另外,不同配置文件的生成的索引文件不能放在同一个目录,否则搜索时会对整个文件夹下的索引文件进行搜索,但是不同索引文件对应不同的数据库,这样取数据时会出现问题。

假 设有两个配置文件:sphinx1.conf和sphinx2.conf分别位于两个sphinx数据目录:/home/testuser /sphinx1和/home/testuser/sphinx2中 ,sphinx安装路径为/usr/local/sphinx/,那么启动方法如下:

/usr/local/sphinx/bin/searchd --config /home/testuser/sphinx1/sphinx1.conf

/usr/local/sphinx/bin/searchd --config /home/testuser/sphinx2/sphinx2.conf

同样,生成索引的方法如下:

/usr/local/sphinx/bin/indexer -- config /home/testuser/sphinx1/sphinx1.conf  indexname  --rotate

/usr/local/sphinx/bin/indexer -- config /home/testuser/sphinx2/sphinx2.conf  indexname  --rotate

加参数—rotate是为了在更新索引文件后,无须重新启动searchd进程而可以搜索到更新index后的内容。

posted @ 2014-09-11 14:57  上帝爱编程  阅读(456)  评论(0编辑  收藏  举报