在遥远的埃及沙漠,有一座雄伟的狮身人面像耸立在那里,它就位于古埃及第四王朝法老哈夫拉的古墓旁边,它就是各位读者所熟知的斯芬克斯。关于斯芬克斯的来历众所纷纭,在希腊神话中,史芬克斯是以谜题害人的生物,它长得人头狮身,经常拦在过往路人的去路之上,让路人答题,若路人无法回答题目,史芬克斯便会把可怜的过路人吃掉,它代表神的惩罚。在本系列中,我们将介绍一款与这个狮身人面怪兽同名全文索引引擎,Sphinx全文索引。

    进入本篇的主题,本篇中,我们将讲述:

      (1)、Sphinx/Coreseek的简介

      (2)、安装Sphinx/Coreseek 


    一、Sphinx/Coreseek的简介

    Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL等数据库做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。[1]。其官网为:http://sphinxsearch.com/

    CoreSeek则是支持中文分词技术的基于Sphinx研发并独立发布,采用GPLv2协议开放源码,其官网为:http://www.coreseek.cn/截至本文编写为止,其稳定版为:Coreseek 3.2.14。

    目前Coreseek的主要特性包括[2]:

    (1)、支持多种数据来源

      ·Mysql数据库

      ·支持多种MySQL文本数据的中文编码格式,目前支持的有UTF-8、GB18030;

      ·PostgreSQL数据库

      ·xmlpipe2 数据管道

      ·允许用户通过xmlpip2向全文搜索服务器导入自定义格式的数据。

      ·Python 可编程数据源

    (2)、高性能

      ·高速索引

      ·在现代CPU上可达10 MB/秒(英文),在启用了中文分词后,建立索引的速度可达300K/s;

      ·高速搜索

      ·在2-4 GB的文本建立的索引上搜索,平均0.1秒内获得结果;

      ·可处理大数据量

      ·在单一CPU上,实测最高可对100GB的文本建立索引,单一索引可包括100M文件

      ·支持分布式搜索

      ·支持主从式的分布式搜索,支持单一节点失效不影响整个搜索系统

    (3)、支持复杂的查询

      ·支持基于短语和基于统计的复合结果排序机制

      ·支持任意数量的文件字段(数值或全文文本)

      ·支持不同的搜索模式(“完全匹配”,“短语匹配”和“任一匹配”)

    (4)、为中文优化

      ·基于最大匹配算法的中文分词模块

      ·支持GB18030、UTF-8等多种编码的数据源

      ·针对中文的具体特点,对结果的排序进行了优化

      ·支持作为MySQL的存储引擎

 

    二、安装Sphinx/Coreseek

    要安装Sphinx/Coreseek,就必须先获得相应的源码包。

    Sphinx的下载页面地址为:http://sphinxsearch.com/downloads/release/

    Coreseek 3.2.14 的下载地址为:http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

    由于它们都是基于Sphinx引擎进行开发,因此它们的安装方式大体上是相同的,为了后续文章的开展这里我选择了支持中文分词的Coreseek进行讲解。

    总得来说,安装Coreseek分为三个步骤,安装依赖包,安装mmseg中文分词组件,安装csft组件。下面我们正式开始安装:

    首先我们要先把分词软件依赖包用yum全部安装上: 

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

    然后解压出Coreseek源码包: 

    tar zxf coreseek-3.2.14.tar.gz

    安装mmseg中文分词组件: 

    cd mmseg-3.2.14/
    ./bootstrap 
    ./configure --prefix=/usr/local/mmseg3
    make
    make install

    安装csft组件: 

    cd csft-3.2.14/
    /bin/bash 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  
##注意,这里mysql是让Coreseek支持Mysql,如果支持其他的可以改其他参数,譬如:
--with-pgsql make && make install

     就这样,我们愉快的把Coreseek安装完成了。


    好的,本篇内容就先到这里,下一篇中,我们将花一篇的时间来讲解Sphinx的配置,我们下回见。

    [1]:引用自开源中国(http://www.oschina.net/p/sphinx/

    [2]:引用自Coreseek官网(http://www.coreseek.cn/products/ft_feature/

  [ Linux ]   [ 全文索引 ]   [ 分词 ]   [ Sphinx ]   [ Coreseek ]
知识共享许可协议 本作品由小蝶惊鸿创作,采用知识共享署名 4.0 国际许可协议进行许可,转载时请保留本文署名及链接。