PHP+Sphinx中文分词搜索引擎coreseek的安装及测试

http://www.coreseek.cn/ 第一步:先安装mmseg
wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz #下载CoreSeek
tar -zxvf coreseek-4.1-beta.tar.gz
cd coreseek-4.1-beta
cd mmseg-3.2.14
./bootstrap   #输出的warning信息可以忽略,如果出现error则需要解决
./configure --prefix=/usr/local/mmseg3
make && make install
第二步:安装coreseek
cd csft-4.0.1
sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决
./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql
make && make install
cd ..
第三步:测试 测试mmseg分词,coreseek搜索(需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文)
cd testpack
cat var/test/test.xml    #此时应该正确显示中文
/usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml
/usr/local/coreseek/bin/indexer -c etc/csft.conf --all 
/usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索
第四步:索引配置 创建配置sphinx与mysql的配置文件
vi /usr/local/coreseek/etc/sphinx.conf
以下是我用现公司的其中一张表做数据源测试略做了修改,可以根据表的不同做修改。
source main_src
{
    type                    = mysql              #类型

    sql_host                = localhost          #mysql主机
    sql_user                = root               #mysql用户名
    sql_pass                = 123456             #mysql密码
    sql_db                  = test               #使用的mysql数据库名
    sql_port                = 3306               #端口
    sql_sock                = /usr/local/mysql/mysql.sock      #在mysql安装目录下
    sql_query_pre           = SET NAMES utf8                   #设置字符集
    sql_query_pre           = SET SESSION query_cache_type=OFF #禁用查询缓冲
    sql_ranged_throttle     = 0                                #分区查询间隔时间
}

#index定义
index main_index
{
    source           = main_src
    docinfo          = extern
    mlock            = 0
    morphology       = none
    min_word_len     = 1
    html_strip       = 1
    path             =
    charset_dictpath = /usr/local/mmseg-3.2.14/etc
    charset_type     = zh_cn.utf-8
}

source partner_src : main_src{
    sql_query=SELECT comp_id,comp_status,comp_order,views,RADIANS( longitude ) AS longitude, RADIANS( latitude ) AS latitude,comp_name,comp_keyword FROM anl_partner #comp_id主键不需要添加属性,comp_name,comp_keyword为文本做搜索内容, 该语句为生成索引的查询语句

    sql_attr_uint        = comp_status   #属性 整数可以做筛选
    sql_attr_uint        = comp_order
    sql_attr_uint        = views
    sql_attr_float       = longitude     #属性 浮点型,可以做地理位置检索
    sql_attr_float       = latitude
}

index partner_index : main_index {
   path              = /usr/local/coreseek/var/data
   source            = partner_src
}


#全局index定义
indexer
{
    mem_limit            = 256M
}
#searchd服务定义
searchd
{
    listen                  =   9312
    read_timeout            = 5
    max_children            = 30
    max_matches             = 1000
    seamless_rotate         = 0
    preopen_indexes         = 0
    unlink_old              = 1
    pid_file                = /usr/local/coreseek/var/log/searchd_mysql.pid
    log                     = /usr/local/coreseek/var/log/searchd_mysql.log
    query_log               = /usr/local/coreseek/var/log/query_mysql.log
}
保存索引配置文件,生成索引,启动服务。
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all --rotate #生成索引
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf #启动服务
更详细的索引配置查看: http://www.coreseek.cn/docs/coreseek_4.1-sphinx_2.0.1-beta.html#api-reference 注:在安装mmseg,coreseek过程中遇到:error: cannot find input file: src/Makefile.in或者遇到其他类似error错误时... 依次执行以下命令,然后在重新./configure安装,没有错误,自动忽略。。。
yum -y install libtool
aclocal
libtoolize --force
automake --add-missing
autoconf
autoheader
make clean
第五步:PHP+coreseek测试 首先:安装sphinx的PHP扩展
wget http://pecl.php.net/get/sphinx-1.3.0.tgz
tar -zxvf sphinx-1.3.0.tgz
cd sphinx-1.3.0
/usr/local/php-5.4.30/bin/phpize
./configure --with-php-config=/usr/bin/php-config --with-sphinx=/usr/local/sphinxclient
make && make install
cp modules/sphinx.so /usr/local/php-5.4.30/ext/
vi /usr/local/php-5.4.30/etc/php.ini
extension=/usr/local/php-5.4.30/ext/sphinx.so #在php.ini文件最后增加这一行
然后:测试PHP调用sphinx
$s = new SphinxClient;
$s->setServer("127.0.0.1", 9312);
$s->setMatchMode(SPH_MATCH_PHRASE);
$s->setMaxQueryTime(30);
$res = $s->query("测试",'partner_index'); //[测试]关键字,[partner_index]数据源source
$err = $s->GetLastError();
var_dump($res);
注:可以不安装php扩展sphinx,直接引入一个类(sphinxapi.php)使用方法跟扩展一样,具体查看: http://php.net/manual/zh/book.sphinx.php。 该类在coreseek-4.1-beta/testpack/api目录下。 更详细的安装请查看: http://www.coreseek.cn/product_install/install_on_bsd_linux/

转载于:https://my.oschina.net/sakmon/blog/393928

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值