`
weitao1026
  • 浏览: 1053587 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Sphinx : 高性能SQL全文检索引擎

 
阅读更多

Sphinx的特点

  • 快速创建索引:3分钟左右即可创建近100万条记录的索引,并且采用了增量索引的方式,重建索引非常迅速。
  • 闪电般的检索速度:尽管是1千万条的大数据量,查询数据的速度也在毫秒级以上,2-4G的文本量中平均查询速度不到0.1秒。
  • 为很多脚本语言设计了检索API,如PHP,Python,Perl,Ruby等,因此你可以在大部分编程应用中很方便地调用Sphinx的相关接口。
  • 为MySQL设计了一个存储引擎插件,因此如果你在MySQL上使用Sphinx,那简直就方便到家了。
  • 支持分布式搜索,可以横向扩展系统性能。

PHP+MySQL+Sphinx 搜索引擎架构图

在MySQL中安装Sphinx

Sphinx在MySQL上安装有两种方式:

  • 第一种方式是采用API调用,我们可以使用PHP,Python,Perl,Ruby等编程语言的API函数进行查询,这种方式不必重新编译MySQL,模块间改动比较少,相对灵活。
  • 第二种需要重新编译MySQL,将Sphinx以插件的方式编译到MySQL中去,这种方式对程序改动比较少,仅仅需要改动SQL语句即可,但前提是你的MySQL版本必须在5.1以上。

下面是第一种安装方式:

#下载最新稳定版
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中文分词插件Coreseek安装

注:coreseek的安装教程来自这里,下面是详细过程:

安装升级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

下载coreseek

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

wget http://www.wapm.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

安装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 ..

安装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 ..

测试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

生成 mmseg词库及配置文件

新版本的已经自动生成。

总结

Sphinx作为一款高性能的SQL全文检索引擎,值得开发者继续关注,尤其是它多语言的API支持,使开发者可以更方便地应用。

分享到:
评论

相关推荐

    Sphinx基于SQL的全文检索引擎简介

    总结来说,Sphinx是一个强大的全文搜索引擎,适合对搜索性能有高要求的场景。通过熟练掌握Sphinx,开发者可以构建出具有优秀搜索体验的Web应用,提高用户的满意度和网站的整体性能。对于那些需要深入理解全文检索...

    PHP 全文检索引擎 Sphinx 介绍

    Sphinx是一个高性能、开源的全文检索引擎,专为配合SQL数据库而设计,如MySQL和PostgreSQL,用于实现高效且专业的全文搜索功能。它的核心优势在于能够提供比数据库原生搜索更强大的搜索性能,并且易于集成到各种使用...

    sql全文索引 sphinx

    Sphinx是一个高性能、开源的全文搜索引擎,它为SQL数据库提供了强大的全文索引功能。Sphinx与SQL结合使用,可以显著提升大数据量下的检索效率,尤其适用于需要高效搜索的Web应用和信息检索系统。 1. **Sphinx简介**...

    Lucene:基于Java的全文检索引擎简介

    Lucene的作者Doug Cutting是一位在全文索引和检索领域有着丰富经验的专家,他曾经参与过V-Twin搜索引擎的开发,并在Excite担任过高级系统架构设计师。Lucene最初是Cutting个人项目的一部分,后来成为了Apache的一个...

    sphinx全文搜索引擎

    Sphinx全文搜索引擎是一款高效、可定制的开源全文检索引擎,主要设计用于网站后台提供快速、准确的全文搜索功能。它最初由俄罗斯开发者Andrew Aksyonoff开发,现在已经成为许多大型网站和应用程序的重要组成部分,...

    Sphinx 是一个开源的全文搜索服务器,从头开始设计时就考虑到了性能、相关性(又名搜索质量)和集成的简单性

    1. **高性能**:Sphinx 使用内存映射技术,将数据快速加载到内存中,进行高速检索。它还支持实时索引,即在不中断服务的情况下更新索引。 2. **相关性排序**:Sphinx 提供了丰富的查询语法,包括布尔查询、短语查询...

    使用PHP+Sphinx建立高效的站内搜索引擎

    Sphinx是一款由俄罗斯开发者Andrew Aksyonoff创建的高性能全文搜索软件包,它支持多种操作系统,并提供了丰富的功能和高度的定制能力。Sphinx采用了GPL与商业许可双许可模式,允许开发者根据项目需求选择合适的授权...

    PHP搜索引擎Sphinx使用教程.zip

    1. **Sphinx搜索引擎**:Sphinx是一款独立的、高性能的全文检索引擎,支持实时索引和千万级数据量的搜索。它的主要特点包括快速的全文索引、准确定位结果、丰富的排序方式以及对多种数据库的支持,如MySQL和...

    基于Sphinx+MySQL的千万级数据全文检索

    【基于Sphinx+MySQL的千万级数据全文检索】的架构设计着重解决大数据量下...总体而言,这种基于Sphinx+MySQL的全文检索架构能够在不影响数据一致性的前提下,提供高性能的搜索体验,尤其适用于处理大量数据的业务场景。

    sphinx+php检索引擎

    Sphinx是一款专门用于处理大量文本数据的高性能全文搜索工具,能够显著提高搜索速度和准确性。 #### 二、Sphinx简介 Sphinx是由俄罗斯开发者Andrew Aksyonoff开发的高性能全文搜索软件包,该软件同时支持GPL和商业...

    Sphinx+Python+Oracle构建全文检索系统.zip

    1. Sphinx:Sphinx是一个开源的全文搜索引擎,它允许开发者创建高性能、可配置的全文索引,并提供快速的搜索功能。Sphinx支持多种数据源,包括MySQL、PostgreSQL等,同时也支持实时索引和分布式搜索。在本项目中,...

    PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释.docx

    Sphinx是一款由俄罗斯开发者Andrew Aksyonoff开发的高性能全文搜索软件包。它支持GPL和商业双重许可模式。全文检索技术是指通过对文档中的所有文本信息进行检索来实现信息查找的技术。它可以针对文章的标题、作者、...

    搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构

    2. 高性能的搜索(在2-4GB的文本数据上,平均每次检索响应时间小于0.1秒) 3. 可处理海量数据(目前已知可以处理超过100 GB的文本数据,在单一CPU的系统上可处理100 M文档) 4. 提供了优秀的相关度算法,基于短语...

    基于PHP的Sou搜索引擎(整合sphinx).zip

    Sphinx是一个高性能、可配置的全文检索引擎,广泛用于网站搜索和数据分析。下面将详细讨论PHP与Sphinx的结合以及在构建搜索引擎时可能涉及的知识点。 1. PHP基础: PHP是一种服务器端脚本语言,主要用于Web开发,...

    sphinx检索工具

    Sphinx 是一个高性能的全文搜索引擎库,常用于构建自定义的全文检索解决方案。它最初由俄罗斯的 Andrew Aksyonoff 开发,设计目标是提供快速、相关性高的搜索功能,并且能够轻松集成到各种应用程序中,包括与 MySQL ...

    MYSQL sphinx学习

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

    sphinx 测试可用 改下数据库

    Sphinx 是一个高性能、全文检索引擎,常用于构建搜索引擎或者数据检索系统。它支持多种数据库,包括 MySQL,能够实现快速的全文搜索,并提供布尔运算、短语搜索、权重计算等功能。在“sphinx 测试可用 改下数据库”...

Global site tag (gtag.js) - Google Analytics