- _nosay
coreseek配置使用全过程记录
2017-08-24 11:50:53
首先,我们需要建立一个数据库帐号专供sphinx使用,并且给它只读权限。
GRANT SELECT ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';
然后在coreseek相应目录,如/usr/local/coreseek/etc下建立配置文件csft.conf,放一个本站使用中的配置
# # Minimal Sphinx configuration sample (clean, simple, functional) # source articles { type = mysql sql_host = localhost sql_user = your_user sql_pass = your_password sql_db = your_database sql_port = 3306 # optional, default is 3306 sql_query_pre = SET NAMES utf8 sql_query = SELECT id,title from your_table sql_query_info = SELECT id FROM your_table WHERE id=$id } source autoArticles { type = mysql sql_host = localhost sql_user = your_user sql_pass = your_password sql_db = your_database sql_port = 3306 # optional, default is 3306 sql_query_pre = SET NAMES utf8 sql_query = SELECT id,title from your_table sql_query_info = SELECT id FROM your_table WHERE id=$id } index articles { source = articles path = /usr/local/coreseek/var/data/articles charset_type = zh_cn.utf-8 charset_dictpath = /usr/local/mmseg/etc/ } index autoArticles { source = autoArticles path = /usr/local/coreseek/var/data/autoArticles charset_type = zh_cn.utf-8 charset_dictpath = /usr/local/mmseg/etc/ } indexer { mem_limit = 32M } searchd { listen = 9312 listen = 9306:mysql41 log = /home/wwwlogs/sphinx/searchd.log query_log = /home/wwwlogs/sphinx/query.log read_timeout = 5 max_children = 30 pid_file = /home/wwwlogs/sphinx/searchd.pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work }
很简单,凑合看吧。
然后进入/usr/local/coreseek/bin文件夹,执行
./indexer --all --rotate
命令,看是否能正常生成索引。没有问题的话,启动服务
./searchd
加入开机自动运行命令
vim /etc/rc.local /usr/local/coreseek/bin/searchd
加入定时计划,每天重建一次索引
crontab -e 加入 0 0 */1 * * /usr/local/coreseek/bin/indexer --all --rotate
这样php就可以愉快的使用sphinx了