阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下sphinx检索Coreseek中文全文检索引擎安装和使用

124次阅读
没有评论

共计 3458 个字符,预计需要花费 9 分钟才能阅读完成。

首先解释下 sphinx 和 Coreseek 是什么?sphinx(开源全文检索引擎)Coreseek(开源的中文全文检索引擎)coreseek 是一个针对于中文检索方案的一种全文检索技术,基于 sphinx 开发的。

至于好处,简单说就是迅速和高效,尤其是在当今科技迅速发展的前提下,我们要在成百上千万的数据中查找数据,如果只是单纯的使用(select ..from ..)效率可想而知,而 coreseek 不但提供了多种语言的 API 接口,而且时间效率极高。

由于我安装的时候走了一点弯路,各种改!所以还是先把要准备的东西列出来:(当然可以直接安装:yum install …)

(1) automake…tar.gz  autoconf…tar.gz libtool…tar.gz m4…tar.gz

(2) expat…rpm expat.devel…rpm

(3) coreseek-3.2.14.tar.gz(主要就是这些,PHP 暂时不考虑)

解压(1) (3) tar -xzvh …tar.gz

解压(2)
rpm -ivh …rpm

然后执行(1):

    设置环境,升级 / 安装系统基础依赖包:m4、autoconf、automake、libtool

$ sudo bash

    $ su –

    #设置路径和中文环境:

    $ export PATH=/usr/local/bin:$PATH

    $ export LC_ALL=zh_CN.UTF-8

    $ export LANG=zh_CN.UTF-8

    $ curl -O -L http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz

    $ tar -xzvf m4-1.4.13.tar.gz

    $ cd m4-1.4.13

    $ ./configure –prefix=/usr/local

    $ make && make install

    $ cd ..

    $ curl -O -L http://mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz

    $ tar -xzvf autoconf-2.65.tar.gz

    $ cd autoconf-2.65

    $ ./configure –prefix=/usr/local

    $ make && make install

    $ cd ..

    $ curl -O -L http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz

    $ tar xzvf automake-1.11.tar.gz

    $ cd automake-1.11

    $ ./configure –prefix=/usr/local

    $ make && make install

    $ cd ..

    $ curl -O -L http://mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz

    $ tar xzvf libtool-2.2.6b.tar.gz

    $ cd libtool-2.2.6b

    $ ./configure –prefix=/usr/local

    $ make && make install

    $ cd ..

(注:虽然警告在某种程度上也是有错,但可以暂时忽略,遇到 ERROR 就要解决了,全程安装如是)

紧接着是 (2) 的安装(不安装后面的执行操作会报错)

一般的 rpm 包安装,最后在执行第(3)部,也就是接下来的操作

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

## 安装 coreseek,需提前安装 MySQL 以支持 mysql 数据源(/usr/local/mysql)

        $ cd csft-3.2.14

        $ 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 –with-mysql-includes=/usr/local/mysql/
include –with-mysql-libs=/usr/local/mysql/lib

        $ make && make install

        $ cd ..

  ## 测试 mmseg 分词,coreseek 搜索
        $ 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 网络搜索

测试完能正确显示就是配置成功了!但是,这只是第一步!接下来就是要你如何去建立一个索引

http://www.coreseek.cn/docs/coreseek_3.2-sphinx_0.9.9.html#conf-sql-query  这里是 sphinx 和 coreseek 的参考手册

参数的配置

1、数据源配置项 source 2、索引配置选项 index 3、indexer 程序配置选项 4、searchd 程序配置选项

代码如下:

source stip{
        type = mysql
        sql_host = localhost
        sql_user = root
        sql_pass =
        sql_db = test
        sql_port = 3306
        sql_query_pre = SET NAMES utf8
        sql_query = SELECT id,group_id,content FROM documents
        sql_attr_uint = author_id
}

index stip{# index 和 source 应该是成对出现,index 就是配置索引的功能(我们还可以配置多个索引 主索引 + 增量索引的功能)
        source = src
        path = /usr/local/coreseek/var/data/stip  #路径尽量使用绝对路径
        docinfo = extern
        mlock =0
        morphology = none
        min_word_len =1
        html_strip =0

        charset_type = zh_cn.utf-8
        charset_dictpath = /usr/local/mmseg3/etc/
}

searchd{#searchd 是常驻进程的全文检索服务,默认监控本机的 9312 端口
        listen = 9312
        read_timeout =5
        max_children = 30
        max_matches = 1000
        seamless_rotate = 0
        preopen_indexes = 0
        unlink_old = 1
        pid_file = /data/log/searchd_rtindex.pid
        log = /data/log/searchd_rindex.log
        query_log = /data/log/query_rtindex.log
 }

现在进入数据库阶段了,先创建好数据库和表结构

然后就是如何插入数据,成百上千万级别的数据,显而易见是使用循环插入数据

当然我使用的是 shell 脚本

然后就是测试数据 方法和前面额测试一样,然后测试结果

这些仅代表个人见解,欢迎改错!

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140384.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3458字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中