现在可以用最新版的Sphinx版本
网址:http://sphinxsearch.com/downloads/release/
我使用rpm方式: 下载RHEL/CentOS 6.x x86_64 RPM(centos6的64位)
安装前请确保您安装了这些软件包:
$ yum install postgresql-libs unixODBC
从Sphinx网站下载RedHat RPM并安装它:
$ rpm -Uhv sphinx-2.2.1-1.rhel6.x86_64.rpm
准备配置文件(参见快速浏览)后,
可以启动searchd守护进程:
$ service searchd start
(注:我配置文件弄好后,使用这个命令无法启用,后使用
searchd -c /etc/sphinx/sphinx.conf 成功启用
searchd -c /etc/sphinx/sphinx.conf --stop 这是停止 )
配置shpinx.conf 位置/etc/sphinxsearch/sphinx.conf,注意sql_query_info 已经过时,可以不用加
修改mysql配置文件:linux服务器为my.cnf,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后重启Mysql。
show variables like 'ft_min_word_len'; 查看是否正确
新的sphinx,不支持sql_query_info,charset_type设置了
sql_attr_uint = id 此句 对于此改为sid ,在查询是id as sid即可
同时修改phpcms里面modulessearchindex.php第123行改为 $sids[] = $_v['attrs']['sid'];
修改之后一定要重建索引!
配置文件分析:
source:数据源,数据是从什么地方来的。
index:索引,当有数据源之后,从数据源处构建索引。索引实际上就是相当于一个字典检索。有了整本字典内容以后,才会有字典检索。
searchd:提供搜索查询服务。它一般是以deamon的形式运行在后台的。
indexer:构建索引的服务。当要重新构建索引的时候,就是调用indexer这个命令。
attr:属性,属性是存在索引中的,它不进行全文索引,但是可以用于过滤和排序。
. 生成全部索引
sudo /usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --all --rotate 实际命令
/usr/bin/indexer --config /etc/sphinx.conf --all --rotate
生成主索引
/usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --rotate main
生成增量索引
/usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --rotate delta
加入crontab -e root用户
* 0-3 * * * /usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --rotate delta
* 6-23 * * * /usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --rotate delta
0 4 * * * /usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --merge index_main index_delta --rotate 合并索引
配置文件参考:
看phpcms帮助文档