开源搜索引擎Sphinx 中启动多个搜索进程的方法(转)
要在同一机器上启动多个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后的内容。