美文网首页
CentOS6.x安装Coreseek和Sphinx扩展for

CentOS6.x安装Coreseek和Sphinx扩展for

作者: HeyBarry | 来源:发表于2016-12-25 18:57 被阅读0次

    coreseek 简介

    coreseek是一款基于sphinx开源的全文搜索引擎,与sphinx不同的是coreseek增加了一个带有中文分词的词库。

    下载coreseek安装包

    本篇使用coreseek3.2.14稳定版进行讲解,最新版本是4.1,但是只有测试版。可以尝试去官方地址http://www.coreseek.cn/下载安装包,不过貌似官方下载地址已经崩溃,如果下载不成功的话可以去网上查找其它下载渠道,我的是在新浪微盘上下载的,附上地址http://vdisk.weibo.com/s/z-JIj1kq4Z81

    开始安装

    在安装coreseek之前确保在系统安装了LNMP/LAMP环境。
    安装依赖软件

    yum install gcc make gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
    

    将下载好的安装包上传到Linux,执行解压命令,解压完成后进入目录

    tar xzvf coreseek-3.2.14.tar.gz
    cd coreseek-3.2.14
    

    将会看到3个目录分别是csft-3.2.14、mmseg-3.2.14、testpack,其中csft实际就是sphinx安装包,mmseg为中文分词安装包,testpack是安装完coreseek后测试用的。首先安装中文分词

    cd mmseg-3.2.14
    ./configure --prefix=/usr/local/mmseg/
    

    如果出现如下错误
    config.status: error: cannot find input file: src/Makefile.in
    请执行

    aclocal
    libtoolize --force
    automake --add-missing
    autoconf
    autoheader
    make clean
    

    执行编译并安装mmseg

    make && make install
    

    到这里mmseg安装完毕,可以测试下中文分词

    echo '我们是中国人'>1.txt
    /usr/local/mmseg/bin/mmseg -d /usr/local/mmseg/etc 1.txt
    

    接下来安装coreseek

    cd ../csft-3.2.14
    sh buildconf.sh #生成configure可执行文件,如果当前目录已存在configure文件会发出警告:已存在其它版本autoconf,但不能保证能正常工作,如果出现任何问题,建议重新生成
    ./configure --prefix=/usr/local/coreseek \
    --without-unixodbc \
    --with-mmseg=/usr/local/mmseg \
    --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ \
    --with-mmseg-libs=/usr/local/mmseg/lib/ \
    --with-mysql
    make && make install
    

    到此coreseek就全部安装完成了,测试一下coreseek

    cd ../testpack #进入安装包提供的测试目录
    /usr/local/coreseek/bin/indexer -c etc/csft.conf --all  #创建索引
    /usr/local/coreseek/bin/search -c etc/csft.conf '我们是中国人'
    
    Paste_Image.png

    创建索引时可能会出现以下错误
    1./usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

    #解决办法
    echo '/usr/local/mysql/lib'>>/etc/ld.so.conf
    ldconfig
    

    2.Unigram dictionary load Error Segmentation fault

    #解决办法(补充说明:这个是由于字典的路径不对,如果前面设置的字典所在目录名称就是mmseg3就不会出现这个问题了,坑...)
    sed 's/mmse3/mmseg/' etc/csft.conf
    

    安装sphinx扩展for php

    #sphinx扩展依赖于libsphinxclient,先安装libsphinxclient
    cd api/libsphinxclient
    ./configure
    make && make install
    #下载并安装sphinx扩展
    wget http://pecl.php.net/get/sphinx-1.3.2.tgz
    tar zxvf sphinx-1.3.2.tgz
    cd sphinx-1.3.2
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make && make install
    

    安装libsphinxclient时如果报如下错误
    sphinxclient.c:1216: error: static declaration of 'sock_close' follows non-static declaration sphinxclient.c:280: note: previous declaration of 'sock_close' was here
    请执行

    sed -ie '280s/^/static /' sphinxclient.c
    

    接下来修改php.ini文件
    增加下面这行到合适的位置,例如extension_dir配置行下面
    extension=sphinx.so
    执行下面的命令,可以看到sphinx扩展模块已添加到php里了

    /usr/local/php/bin/php -m #查看php扩展模块列表
    

    不过此时还不能在php中使用sphinx,需要重启php-fpm,我这里采用php-fpm.pid文件控制php-fpm进程
    执行重启php-fpm命令

    kill -USR2 `/usr/local/php/var/run/php-fpm.pid`
    

    重启成功后打印phpinfo()


    Paste_Image.png

    OK!整个安装过程就到此结束了

    相关文章

      网友评论

          本文标题:CentOS6.x安装Coreseek和Sphinx扩展for

          本文链接:https://www.haomeiwen.com/subject/mtarvttx.html