`

Sphinx学习之sphinx的安装篇(转)

阅读更多

一、  Sphinx简介

Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQLPostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 XML数据。

Sphinx的特性如下:

a)  高速的建立索引(在当代CPU上,峰值性能可达到10 MB/);

b)  高性能的搜索(2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1);

c)  可处理海量数据(目前已知可以处理超过100 GB的文本数据在单一CPU的系统上可 处理100 M 文档);

d)  提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;

e)  支持分布式搜索;

f)  支持短语搜索

g)  提供文档摘要生成

h)  可作为MySQL的存储引擎提供搜索服务;

i)  支持布尔、短语、词语相似度等多种检索模式;

j)  文档支持多个全文检索字段(最大不超过32);

k)  文档支持多个额外的属性信息(例如:分组信息,时间戳等);

l)  支持断词;

虽然mysqlMYISAM提供全文索引,但是性能却不敢让人恭维,另外数据库毕竟不是很善于做这样的事情,我们需要把这些活让给更适合的程序去做,减少数据库的压力。因此采用Sphinx来做mysql的全文索引工具是一个很好的选择。这个星期主要来学习这个这个工具的使用,下面将学习过程大致的记录一下,做个备忘,也希望能对学习这个工具的其他朋友有所启发。

二、  Sphinx安装

Sphinxmysql上的应用有两种方式:

1.    采用API调用,如使用PHPjava等的API函数或方法查询。优点是可不必对mysql重新编译,服务端进程低耦合,且程序可灵活、方便的调用;缺点是如已有搜索程序的条件下,需修改部分程序。推荐程序员使用。

2.    使用插件方式(sphinxSE)把sphinx编译成一个mysql插件并使用特定的sql语句进行检索。其特点是,在sql端方便组合,且能直接返回数据给客户端。不必二次查询,在程序上仅需要修改对应的sql,但这对使用框架开发的程序很不方便,比如使用了ORM。另外还需要对mysql进行重新编译,且需要mysql-5.1以上版本支持插件存储。

这里的安装主要介绍的是第一种通过api调用的方式。Sphinx的安装如下:

#下载最新稳定版

wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz

tar xzvf sphinx-0.9.9.tar.gz

cd sphinx-0.9.9

./configure --prefix=/usr/local/sphinx/   --with-mysql  --enable-id64

make

make install

注意:采用这种方式安装不支持中文分词。

三、  Sphinx中文分词

中文的全文检索和英文等latin系列不一样,后者是根据空格等特殊字符来断词,而中文是根据语义来分词。中文分词主要有2个插件

1.    Coreseek

Coreseek是现在用的最多的sphinx中文全文检索,它提供了为Sphinx设计的中文分词包LibMMSeg ,是基于sphinx的基础上开发的。

2.    sfc(Sphinx-for-chinese)

sfcsphinx-for-chinese是由网友happy兄提供的另外一个中文分词插件。其中文词典采用的是xdict

本文主要介绍Coreseek的安装方法

四、  Coreseek(支持中文检索的sphinx)安装

1.    安装升级autoconf

因为coreseek需要autoconf 2.64以上版本,因此需要升级autoconf,不然会报错从http://download.chinaunix.net/download.php?id=29328&ResourceID=648下载autoconf-2.64.tar.bz2,安装方法如下:

tar -jxvf autoconf-2.64.tar.bz2

cd autoconf-2.64

./configure

make

make install

2.    下载coreseek

新版本的coreseek将词典和sphinx源程序放在了一个包中,因此只需要下载coreseek包就可以了。

3.    安装mmseg(coreseek所使用的词典)

tar xzvf coreseek-3.2.14.tar.gz

cd mmseg-3.2.14

./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决

./configure --prefix=/usr/local/mmseg3

make && make install

cd ..

4.    安装coreseek(sphinx)

cd csft-3.2.14

sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决

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

cd ..

5.    测试mmseg分词和coreseek搜索

备注:需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文,我的系统字符集为en_US.UTF-8也是可以的。

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 网络搜索

此时正确的应该返回

words:

1. '网络': 1 documents, 1 hits

2. '搜索': 2 documents, 5 hits

6.    生成 mmseg词库及配置文件

新版本的已经自动生成。

分享到:
评论

相关推荐

    sphinx在linux的安装和使用方法

    ### Sphinx在Linux下的安装与使用方法 #### 一、Sphinx简介 Sphinx是一款开源的全文检索引擎,它可以提供快速的、高效率的全文搜索功能。Sphinx支持多种数据库(如MySQL、PostgreSQL等)以及文件系统等多种数据源...

    Windows下安装使用Sphinx

    ### Windows 下安装使用 Sphinx #### 一、Sphinx 概述 Sphinx 是一款由俄罗斯开发者 Andrew Aksyonoff 开发的高性能全文搜索软件包,它支持 GPL 和商业许可协议。全文检索是一种信息检索技术,它以文档的全部文本...

    sphinx+mysql 安装手册

    **Sphinx+MySQL安装手册** Sphinx是一款高性能的全文搜索引擎,常用于构建高效的数据检索系统。结合MySQL数据库,可以构建出强大的、适用于千万级数据的全文检索解决方案。本手册将详细讲解如何在生产环境中安装和...

    sphinx 安装及使用

    ### Sphinx 安装及使用详解 #### 一、Sphinx简介 Sphinx是一款高性能的全文搜索引擎,主要用于提高大型数据集的搜索效率。它能够独立运行,也可以作为应用程序的一部分嵌入到其他软件中。Sphinx主要适用于对性能...

    sphinx+xdict+安装说明.zip

    4. **编译与安装**:进入Sphinx源码目录,执行配置脚本,配置过程中要确保选择安装中文支持。然后进行编译和安装,这个过程可能需要安装一些额外的依赖,如libxml2和libxslt。 5. **配置Sphinx**:在Sphinx的配置...

    php7的sphinx扩展,适用linux,mac

    3. 编译并安装扩展:运行`phpize`来配置编译环境,然后执行`./configure --with-sphinx=/path/to/sphinx`,最后使用`make && make install`完成编译和安装。 4. 更新PHP配置:将新安装的Sphinx扩展添加到php.ini文件...

    Sphinx 在 windows 下安装使用.docx

    【Sphinx 在 Windows 下安装使用】的文档主要涵盖了在Windows操作系统上安装和配置Sphinx全文检索引擎的过程。Sphinx是一个高性能、开源的全文搜索引擎,它提供了多种编程语言的API,如PHP、Python、Perl和Ruby,...

    MYSQL sphinx学习

    【MySQL Sphinx 学习】 MySQL Sphinx 是一种基于全文检索的搜索引擎,主要被用来增强数据库系统的搜索功能,尤其适用于大量数据的高效检索。Sphinx 由俄罗斯开发者 Andrew Aksyonoff 创建,旨在解决由数据库驱动的...

    语音识别 sphinx4 JAVA 教程

    学习Sphinx-4时,可以参考"Share My Point Open Source Speech Recognition Engines - CMU Sphinx"、"用JAVA开发语音识别系统 Java - J2SE - 基础类 - CSDN社区"和"Sphinx-4 STEP BY STEP - 飞鹰 - CSDNBlog"等资源...

    sphinx 的安装及使用 windws centos coreseek

    Sphinx支持多种操作系统,包括Windows和CentOS,这表明这篇博客将介绍如何在这些不同的平台上安装和使用Sphinx。"Coreseek"是Sphinx在中国的一个流行分发版,它集成了中文分词器,更适合处理中文数据。 在描述中...

    Linux下Mysql5.5的Cmake安装以及sphinx结合

    ### Linux下Mysql5.5的Cmake安装以及sphinx结合 #### 一、Mysql5.5在Linux下的Cmake安装步骤 ##### 1. 用户与权限设置 首先需要为MySQL服务创建一个专用的用户账号,这有助于提高系统的安全性。 ```shell # 创建...

    windows下sphinx PHP5.5扩展

    安装完成后,你可以使用Sphinx提供的函数,如`sphinx_client`,`sphinx_init`,`sphinx_query`等,来进行索引管理、搜索查询以及结果处理。同时,别忘了配置Sphinx服务器,创建索引,并确保服务运行正常。在PHP中,...

    pocketsphinx库学习用的一个简单的语言模型(lm、dic文件)

    1. **语言模型(lm)**:语言模型是Pocketsphinx进行语音识别的基础之一,通常以.arpa或.bin格式存在。3652.lm文件即为一个语言模型,它描述了特定语言中单词序列的概率。语言模型的作用在于预测一个句子出现的概率...

    sphinx中文语音训练手册

    因此sphinx需要学习说话人的“口音”。 如果训练时的读者发音比较标准,则sphinx能“举一反三”,识别其他不那么标准的读者的语音。 推荐的做法是训练一些典型的口音:标准男、女声,童音,最后再考虑特定用户的口音...

    pocketsphinx、speechrecognition中文语音包.rar

    首先,我们需要安装必要的库,包括pocketsphinx和speechrecognition。然后,通过speechrecognition的`Recognizer`类创建一个识别对象,并设置其使用的识别器为pocketsphinx。接下来,我们可以加载音频文件或实时录音...

    sphinx扩展,适用linux

    Sphinx 是一个强大的全文搜索引擎,尤其适用于实时搜索和大数据量的场景。在 Linux 环境下,Sphinx 的使用可以极大地提升数据检索的效率。本文将深入探讨 PHP7 中的 Sphinx 扩展,以及如何解决与 `libsphinxclient` ...

    java 整合 sphinx

    压缩包中的`sphinx`文件夹可能包含了Sphinx的安装文件、配置文件、示例代码或者其他的辅助文件。解压后,用户应按照说明进行安装和配置,包括启动Sphinx服务、测试连接以及运行示例查询。 7. **实践应用**: 在...

    sphinx4 中文声学模型、词典、语言模型

    **声学模型**是Sphinx4的核心组成部分之一,它负责将音频信号转化为一系列可能的音素序列。对于中文语音识别,由于中文发音的复杂性,需要一个特别设计的声学模型来捕捉其特点。"半连续"声学模型指的是模型在训练...

Global site tag (gtag.js) - Google Analytics