• 中文Sphinx[coreseek]安装


    一.安装 coreseek
    1.mmseg安装
    cd coreseek/mmseg中
    ./configure --prefix=/usr/local/mmseg

    注:执行后有
    config.status:error:cannont find input file: src/Makefile.in
    用automake命令来执行一次
    然后在执行一下
    ./configure --prefix=/usr/local/mmseg

    make && make install

    2.coreseek安装
    cd coreseek/csft中

    ./configure --prefix=/usr/local/coreseek
    --with-mysql=/usr/local/mysql 连MYSQL
    --with-mmseg=/usr/local/mmseg 中文分词连
    --with-mmseg-includes=/usr/local/mmseg/include/mmseg/
    --with-mmseg-libs=/usr/local/mmseg/lib/
    make && make install

    二.配置

    cp /usr/local/coreseek/etc/sphinx.conf.dist csft.conf

    修改
    增加这两项
    charset_type=zh_cn.utf-8
    charset_dictpath=/usr/local/mmseg/etc/


    三.增量索引
    1.创建一个计数器的表
    create table sp_counter(
    count_id int unsigned primary key auto_increment,
    max_doc_id int unsigned
    );

    2.再次修改配置文件
    vi /usr/local/coreseek/etc/csft.conf

    source main{
    把sql_query_pre改成下面的语句

    sql_query_pre=replace into sp_counter select 1,max(id) from t1[表]

    sql_query = select id,title,content from t1 where id<=(select max_doc_id from sp_counter where count_id=1)


    在增量索引段修改
    source delta : main{
    sql_query_pre = set names utf8
    sql_query=select id,title,content from t1 where id>(select max_doc_id from sp_counter where count_id=1)
    }

    index delta : main{
    source = delta
    path = /usr/local/coreseek/var/data/delta
    morphology = stem_en
    }

    3.测试
    建立索引
    ./indexer main --rotate 主索引

    ./indexer delta --rotate 增量索引

    4.添加计划任务
    vi main.sh
    #!/bin/bash
    #main.sh
    /usr/local/coreseek/bin/indexer main --rotate >>/log/main.log

    vi delate.sh
    #!/bin/bash
    #delate.sh
    /usr/local/coreseek/bin/indexer delate --rotate >>/log/delate.log

    最后,每5分钟执行一次增量索引和凌晨2:30重新建立主索引

    */5 * * * * /usr/local/coreseek/etc/delate.sh

    30 2 * * * /usr/local/coreseek/etc/main.sh

    与PHP测试

    <?php
    header('Content-Type:text/html;charset=UTF-8');
    echo '<h1>搜索显示页</h1>';
    
    $key = $_POST['key'];
    $sphinx = new SphinxClient();
    $sphinx->SetServer('localhost',9312);
    $sphinx->SetMatchMode(SPH_MATCH_ANY);
    //$sphinx->SetLimits(0,0);
    $res = $sphinx->query("$key","*");
    
    //print_r($res);
    
    $option = array(
        "before_match"=>'<font style="color:red;font-weight:bold;">',
        "after_match"=>'</font>'
    );
    
    $id = implode(',',array_keys($res['matches']));
    $sql = "select id,title,content from t1 where id in ({$id})";
    $rst = mysql_query($sql);
    while($row = mysql_fetch_assoc($rst)){
        $rst2 = $sphinx->buildExcerpts($ros,"main",$key,$option);
    }
    
    
    ?>

     ##################################################################

    -- sphinx安装
    tar zxvf sphinx.tar.gz
    cd sphinx
    ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql/
    make && make install

    --配置
    cd /usr/local/sphinx中
    cd etc/
    cp sphinx.conf.dist sphinx.conf
    vi sphinx.conf

    --创建索引命令:indexer
    -c 指定配置文件
    --all 对所有索引重新编制索引
    --rotate 用于轮换索引,主要是再不停止服务的时候,增加索引
    --merge 合并索引
    ./indexder -c /usr/local/sphinx/etc/shpinx.conf --all
    执行的时候报错
    cp /usr/local/mysql/lib/mysql/libmysqlclient.so.16 /usr/lib/
    这样就可以解决了,就可以执行了


    --------------------------------------------------------------------

    --coreseek安装
    1.下载 http://www.coreseek.cn官网去下载
    2.安装
    tar zxvf coreseek.tar.gz
    cd mmseg目录中 [中文分词目录]
    automake

    ###############################

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

    ###############################
    ./configure --prefix=/usr/local/mmseg
    make && make install

    进行coreseek/csft目录中
    ./configure --prefix=/usr/local/coreseek --with-mysql=/usr/local/mysql --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/
    make && make install

    --配置
    cd /usr/local/coreseek/etc
    cp sphinx.conf.dist csft.conf
    vi csft.conf
    修改的地方
    index test1{
    添加下面两行
    charset_type=zh_cn.utf-8
    charset_dictpath=/usr/local/mmseg/etc/ # 安装mmseg的目录
    }

    -- 启动coreseek服务
    /usr/local/coreseek/bin/searchd
    -c # 指定配置文件
    --stop # 停目服务
    --pidfile # 用来显式指定一个PID文件
    -p # 指定端口
    #/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf

    -- 安装sphix支持PHP模块
    1.安装coreseek目录中 api/libsphinxclient中的软件
    ./configure
    make && make install

    2.下载sphinx支持的PHP模块
    http://pecl.php.net/get/sphinx-1.3.0.tgz
    tar zxf sphinx-1.3.0.tgz
    cd sphinx-1.3.0中
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx
    make && make install

    3.修改PHP.INI文件
    添加
    extension=sphinx.so

    4.重启apache生效

     ##################################

    --coreseek安装
    1.官网下载:http://www.coreseek.cn/ 对应的版本
    2.安装
    wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
    tar zxf coreseek-3.2.14.tar.gz
    cd coreseek-3.2.14

    先安装一下需要的支持软件包
    yum -y install make gcc gcc++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

    cd mmseg-3.2.14 # 中文分词的词库目录要先安装
    ./bootstrap 测试系统的环境的
    在没有报错的情况进行下面操作
    ./configure --prefix=/usr/local/mmseg
    make && make install

    cd /usr/local/mmseg/bin
    ./mmseg -d /usr/local/mmseg/etc 源码包/mmseg-3.2.14/src/t1.txt

    安装csft-4.1包中
    cd csft-4.1
    sh buildconf.sh #检查环境,不报错就可以进行下一步
    ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql
    make && make install

    cd /usr/local/coreseek
    cd etc/sphinx.conf.dist etc/csft.conf

    -- 安装sphix支持PHP模块
    1.安装coreseek目录中 api/libsphinxclient中的软件
    ./configure
    make && make install

    2.下载sphinx支持的PHP模块
    http://pecl.php.net/get/sphinx-1.3.0.tgz
    tar zxf sphinx-1.3.0.tgz
    cd sphinx-1.3.0中
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx
    make && make install

    3.修改PHP.INI文件
    添加
    extension=sphinx.so

    4.重启apache生效


    注:要学习的 不懂的到官网看中文手册学习
    3.2. 属性
    3.7. SQL 数据源 (MySQL, PostgreSQL) ---> 区段查询

  • 相关阅读:
    webstorm和git安装后,terminal输入git命令,提示'git' 不是内部或外部命令
    Vue中beforeRouterEnter和beforeRouteLeave的应用
    对象数组,对比多个数组的相同子元素并筛选
    应用canvas绘制动态时钟--每秒自动动态更新时间
    opacity 与rgba区别
    js对象的合并
    小程序wx.navigateTo和wx.redirectTo 都无效
    点赞博客园
    英语学习方法
    JAVA编程思想——分析阅读
  • 原文地址:https://www.cnblogs.com/ahwu/p/3463095.html
Copyright © 2020-2023  润新知