安装coreseek

官网coreseek.cn 现在已打不开。。。。

Coreseek是现在用的最多的sphinx中文全文检索,它提供了为Sphinx设计的中文分词包LibMMSeg 。并提供了多个系统的二进制发行版,其中有rpm,deb及windows下的二进制包

PDF手册地址https://soft.thinkask.cn/sphinx/CoreSeekSphinx.pdf" target="_blank">:https://soft.thinkask.cn/sphinx/CoreSeekSphinx.pdf

 class="hljs coffeescript" codemark="1">wget https: class="hljs-regexp">//soft.thinkask.cn/sphinx/coreseek-4.1-beta.tar.gz
tar zvxf coreseek-4.1-beta.tar.gz
##解压里有2个文件夹 一个是mmseg中文分词包 还有一个是csft(其实就是sphinx)包 都要安装
##先安装mmseg
cd coreseek-4.1-beta/mmseg-3.2.14/
./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决
./configure --prefix=/usr/local/mmseg3 #配置
make &&make install
##安装csft
cd coreseek-4.1-beta/csft-4.1/
sh buildconf.sh #输出的warning信息可以忽略,如果出现error则需要解决
./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql #配置
make && make install

报错。。。额
sphinxexpr.cpp:1080:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc braindamage
#这个问题是因为 gcc 版本高于 4.7 造成的
找到csft-4.1/src/sphinxexpr.cpp 的1823/1746/1777行,将ExprEval修改为this->ExprEval之后重新执行 make && make install 即可

安装完毕后 注意 coreseek 中的配置文件也是csft.conf 而不是 sphinx.conf
cd /usr/local/coreseek/etc
cp sphinx.conf.dist csft.conf
vim csft.conf#修改配置csft.conf,增加对中文支持,在index test1 段下面,增加
charset_type = zh_cn.utf-8#如果系统locale预先设置好字符集为zh_CN.UTF-8,不要此项,会报错。
charset_dictpath =/usr/local/mmseg/etc/

测试


在vim下搜索 /sql_host (告诉sphinx mysql链接信息)

    sql_host                = localhost     //服务器名
    sql_user                =     //数据库账户
    sql_pass                =     //数据库密码
    sql_db                  = test          //使用sphinx 库名
    sql_port                = 3306  # optional, default is 3306

 在vim下搜索   /sql_query_pre
 打开下面配置的注释
 sql_query_pre          = SET NAMES utf8

 在vim下搜索 /sql_query   找到下面内容在每行前面加#注释掉
 sql_query                              = \
 SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
            FROM documents
 
 在上面内容改成下面添加个人数据表
 SELECT id,title,content FROM sphinx

 搜索/charset_type 修改成:
 charset_type            = zh_cn.utf-8
 在上面内容下面加上词典目录
 charset_dictpath        = /usr/local/mmseg3/etc/

 /_info   搜索_info找到
  sql_query_info          = SELECT * FROM documents WHERE id=$id
 修改成:
  sql_query_info          = SELECT * FROM sphinx_test WHERE id=$id

建立索引
cd /usr/local/coreseek/bin
./indexer --all
./search 我是中国人
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file '/usr/local/coreseek/etc/csft.conf'...
index 'test1': query '我是中国人 ': returned 0 matches of 0 total in 0.000 sec

words:
1. '我': 0 documents, 0 hits
2. '是': 0 documents, 0 hits
3. '中国人': 0 documents, 0 hits

index 'test1stemmed': query '我是中国人 ': returned 0 matches of 0 total in 0.000 sec

words:
1. '我': 0 documents, 0 hits
2. '是': 0 documents, 0 hits
3. '中国人': 0 documents, 0 hits

看看是不是已经出来效果了呢 (备注,原始测试的sql,都是英文,需要自己添加一些中文的记录哦)。

安装libsphinxclient

cd coreseek-4.1-beta/csft-4.1/api/libsphinxclient
sh buildconf.sh
./configure --prefix=/usr/local/sphinxclient
make && make install

安装php拓展

##我WGET好像有问题,我是用WINDOW下载了,传到服务器的。
##此扩展是PHP7的包,其它包请百度查找
wget
http:/ class="hljs-regexp">/git.php.net/?p=pecl/search_engine/sphinx.git;a=snapshot;h=9a3d08c67af0cad216aa0d38d39be71362667738;sf=tgz
# tar zxvf sphinx-9a3d08c.tar.gz
# cd cd sphinx-9a3d08c
#(此处为当前使用的PHP目录)
/www/wdlinux/apache_php/bin/phpize
./configure --with-php-config=/www/wdlinux/apache_php/bin/php-config --with-sphinx=/usr/local/sphinxclient
make && make install
安装后,在/www/wdlinux/apache_php-7.0.6/lib/php/extensions/no-debug-non-zts-20151012/目录下生成sphinx.so扩展 PHP目录不一样,生成文件目录也不一样。

在php.ini中加入

[sphinx]
extension_dir=/www/wdlinux/apache_php-7.0.6/lib/php/extensions/no-debug-non-zts-20151012/
extension=sphinx.so

查看phpinfo();

https://imgs.jerryblog.cn/2018051815266367056257.png" alt="QQ截图20180518174401">

到处完成安装

##开启coreseek
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf

建立索引:

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all

重建索引

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all --rotate

#php 调用
$cl = new \SphinxClient();
$cl->SetServer('localhost',9312);
$cl->SetMatchMode(SPH_MATCH_ALL);
$cl->SetArrayResult(true);
$res = $cl->Query("我是中国人","*");
var_dump($res);