美文网首页
coreseek mmseg实验记录

coreseek mmseg实验记录

作者: limgquan | 来源:发表于2017-02-28 10:50 被阅读0次

    mmseg
    csft
    testpack
    http://blog.csdn.net/baidu_30000217/article/details/51771263 参考文章

    yum install -y libtool automake
    cd coreseek-3.2.14
    cd mmseg-3.2.14/
    ./bootstrap
    ./configure --prefix=/usr/local/mmseg
    make
    make install

    cd ..
    cd csft-3.2.14/

    这里我们要修改 src/sphinxexpr.cpp 文件,将该文件中的 1013、1047、1080 行的 ExprEval 改为

    this->ExprEval(这里的行数跟网上的教程说的行数不一样,可能是版本的问题吧,但是如果你用的是我提供的版本,该行数是正确的),懂点 C++

    的同学也可以自己看看 ExprEval 错在哪里。

    改完上面所说的问题后:

    ./buildconf.sh

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

    ###################z
    中文分词算法分类
    1 基于字符串匹配的分词方法
    机械分词法,基于词典,在足够大的词典中进行词条匹配 若找到了这个字符串,就算匹配成功(识别出一个词)
    三个要素
    分词词典
    文档扫描顺序 ---- 正向 逆向 双向
    匹配原则 ---- 最大 最小 逐词 最佳
    2 基于理解的分词方法
    3 基于统计的分词方法

    什么时候用sphinx
    1 网站数据量日渐增大,对于搜索有更高的要求
    2 网站用户反映,搜索速度变的很慢
    3 用户很多数据很多处理大数量的并发查询
    4 设计一个千万级或亿级别的分布式架构

    配置文件
    cp sphinx.conf.dist csft.conf

    sphinxclient.c:1216:13: error: static declaration of 'sock_close' follows non-static declaration
    static void sock_close ( int sock )

    sphinx集成到php程序中,有两种方式
    1 sphinx php 模块phpize???
    cd /usr/local/src/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient
    ./configure && make && make install
    cd /usr/local/src/php-7.1.0/ext/sphinx-1.3.3
    /usr/local/fastphp71/bin/phpize
    ./configure --with-php-config=/usr/local/fastphp71/bin/php-config --with-sphinx
    make && make install

            出现这句话 说明安装没啥问题了
            Installing shared extensions:     /usr/local/fastphp71/lib/php/extensions/no-debug-non-zts-20160303/
            接下来修改配置文件
    2   sphinx api 类(include)/usr/local/src/coreseek-3.2.14/testpack/api/sphinxapi.php
    

    使用sphinx需要做以下事情
    1 得有数据
    2 建立sphinx配置文件
    3 生成索引 indexer --all
    4 启动sphinx Searchd服务进程 开启9312端口:/usr/local/coreseek/bin/searchd
    -c 指定配置文件
    --stop 停止服务
    --pidfile 显示指定一个pid文件
    -p 指定端口
    5 用php客户程序去链接sphinx服务

    #############实时索引#####
    增量索引
    主数据源 id 1、2、3
    增量数据源 id 4 每5分钟索引一次,晚上重新进行一次主索引(延迟5分钟)
    创建一个计数器表
    create table sph_counter(counter_id int unsigned not null primary key auto_increment,max_doc_id,int not null);

    修改sphinx配置文件添加到另外两个sql_query_pre后面
    sql_query_pre=replace into sphinx_counter select 1,max(id) from t1
    
    再修改sql_query 加上条件
    sql_query=select id,tit,cnf from t1 where id <= (select max_doc_id from sph_counter where counter_id = 1)
    
    设置增量数据源
    soucre delta:main{
        sql_query_pre=set names utf8;
        sql_query=select id,tit,cnt from t1 where id > (select max_doc_id from sph_counter where counter_id=1);
    }
    设置增量索引
    index delta:main{
        source=delta
        path=/usr/local/coreseek/var/data/delta
    }
    
    开始测试增量索引
    ./indexer --all --rotate
    先读主数据源,更新到计数器表,生成索引到主数据索引
    
    
    将增量数据新增索引
    ./indexer --delta --rotate 
    

    写两个shell脚本 建两个日志文件
    main.sh

    !/bin/bash

    main.sh

    /usr/local/coreseek/bin/indexer main --rotate >>/usr/local/coreseek/var/log/main.log

    delta.sh

    !/bin/bash

    delta.sh

    /usr/local/coreseek/bin/indexer delta --rotate >>/usr/local/coreseek/var/log/delta.log

    crontab -e
    */12 * * * * /usr/local/coreseek/init/delta.sh
    30 2 * * * /usr/local/coreseek/init/main.sh

    给两个shell脚本加权限
    chmod a+x /usr/local/coreseek/init/*

    相关文章

      网友评论

          本文标题:coreseek mmseg实验记录

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