zoukankan      html  css  js  c++  java
  • linux 配置 sphinx 全文搜索引擎

    因为公司网站需要,最近在弄sphinx搜索引擎,也是遇到各种问题,最终终于解决了。

    服务器系统:centos7 (64位)

    详情看安装官网的安装教程进行 coreseek 3.2.14

    这里只提一些注意的地方

    1:在安装前先安装基础开发库及数据库依赖

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

     2:下载

     wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

    3:安装mmseg,这里应该是没有什么问题的。

    $ cd mmseg-3.2.14
    $ ./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决
    $ ./configure --prefix=/usr/local/mmseg3
    $ make && make install
    $ cd ..

    4:安装csft

    进入到csft目录,先修改src/sphixexpr.cpp这个文件,里面3个地方编译会出错的

    将ExprEval改为this->ExprEval

     再进行下一步安装,这样就可以了。

    sh buildconf.sh 
    
    ./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

    5:然后就是配置文件,到安装目录下复制一份

    cd /usr/local/coreseek/etc
    cp sphinx.conf.dist sphinx.conf
    vim sphinx.conf

    主要修改数据库参数 ,其他一些警告问题,注释掉配置文件里面相应内容即可,暂时未发现问题

    type                    = mysql
    
    sql_host                = localhost
    sql_user                = root
    sql_pass                = 
    sql_db                    = test
    sql_port                = 3306
    sql_query_pre            = SET NAMES utf8

    然后保存,生成索引

    cd /usr/local/coreseek/bin
    ./indexer -c /usr/local/coreseek/etc/sphinx.conf --all
    ./searchd -c  /usr/local/coreseek/etc/sphinx.conf

    导入测试数据,调用测试文件

    require ( "sphinxapi.php" );
    
    $cl = new SphinxClient ();
    $cl->SetServer ( '127.0.0.1', 9312);
    $cl->SetConnectTimeout ( 3 );
    $cl->SetArrayResult ( true );
    $cl->SetMatchMode ( SPH_MATCH_ANY);
    $res = $cl->Query ( '网络搜索', "*" );
    print_r($cl);
    print_r($res);

    应该就没有问题,确保系统中文zh_CN.UTF-8,才能保证中文显示

    下面是自己公司的情况,可能也有人会有这样的情况。

    搜索引擎在一个服务器,而网站及数据库在另一个服务器,这样的情况下需要考虑的

    1:coreseek 安装中如果提示libmysqlclient.so.18共享库找不到

    在mysql服务器复制一份libmysqlclient.so.18,路径为/usr/lib64/mysql/libmysqlclient.so.18

    2:搜索引擎所在的服务器防火墙端口是否开放

    centos7先安装

    yum install firewalld-config

     然后开启端口

    firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
    firewall-cmd --permanent --add-port=10-9900/tc

    查询

    firewall-cmd --permanent --query-port=80/tcp

    3:网站php调用api版本必须与coreseek 版本一致。

    测试过程可以在php中直接输出

    var_dump($cl);//$cl为sphinxClient对象

    查看错误信息。

     以上问题解决了应该就可以正常使用了。

  • 相关阅读:
    IOS中UIImage用代码压缩
    自定义UILabel设置垂直方向的居上,居中,居下
    IOS开发之数据加密与解密:AES256+Base64转码
    IOS开发之网络数据Json处理
    Unity3d中CharacterController的移动和碰撞分析
    关于Unity3d中物体之间碰撞检测的方法
    WPF 调用Win32控件
    C# 扩展方法
    颜色空间转换 RGB到HSV
    加速计算技术-- Intel 的IPP库
  • 原文地址:https://www.cnblogs.com/stubbornRookie/p/5401558.html
Copyright © 2011-2022 走看看