Shpinx在PHPCMS里的使用及配置

时间:2022-06-18 16:05:56

现在可以用最新版的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里面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帮助文档