现在可以用最新版的Sphinx版本
安装用ppa方式
首先sudo apt-get update
执行添加库命令
安装 sudo apt-get install shpinxsearch
配置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里面modules\search\index.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帮助文档