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万条记录的增量索引,重建一次只需几十秒。

特性

  Sphinx的主要特性包括:

  高速索引 (在新款CPU上,近10 MB/秒);

  高速搜索 (2-4G的文本量中平均查询速度不到0.1秒);

  高可用性 (单CPU上最大可支持100 GB的文本,100M文档);

  提供良好的相关性排名

  支持分布式搜索;

  提供文档摘要生成;

  提供从MySQL内部的插件式存储引擎上搜索

  支持布尔,短语,和近义词查询;

  支持每个文档多个全文检索域(默认最大32个);

  支持每个文档多属性;

  支持断词;

  支持单字节编码与UTF-8编码。

Coreseek

  Coreseek的开发工作类似Sphinx(起始于2001年),可以上溯到2006年,当时试图为一个数据库驱动的网站寻找一个可接受的中文搜索的解决方案,但是当时没有任何方案能够完全而又直接的满足要求。事实上,主要是如下问题:

· 搜索质量(例如:类似Google的有效的相关度算法)单纯的统计学方法的效果非常糟糕,特别是在大量的短篇文档的集合上,例如:论坛、博客等等

· 搜索速度 特别是当搜索的短语包括"停止词"时,表现的尤其明显,例如:"to be or not to be"

· 建立索引时,可控的磁盘和CPU消耗 在现有硬件的环境下,这一点的重要性要超过对索引构造速度的要求。

· 中文搜索的准确性和效率 因为众所周知的原因,只有准确的中文分词才能提高中文搜索的准确性,并大大降低计算量。

  通过网络,我们了解到有无数的人存在类似的需求,尔后我们进行了不同途径的探索,尝试了不同的走法,经过了反复的实践,最终选择基于Sphinx、结合MMSeg,开发出Coreseek中文全文检索引擎,并按照GPLv2协议发行,以供企业和个人解决中文搜索问题。

  年复一年,其他的解决方案有了很多改进,新的方案也不断涌现,但是,我们一致认为仍然没有一种解决方案足够的好,能让我们抛弃Sphinx将搜索平台迁移过去。近年来,Sphinx/Coreseek的用户给了我们很多正面的反馈和建议,我们也不断改进和提高,并增加了Python数据源,将Sphinx/Coreseek的应用范围从已知世界扩展到未知世界,其应用场景也达到无限种可能;因此,显而易见的,Sphinx/Coreseek的开发过程将会继续(也许将持续到世界末日)。

下载

  Sphinx原始版本可以从Sphinx官方网站 http://www.sphinxsearch.com/ 下载。

  Coreseek可以从Coreseek官方网站 http://www.coreseek.cn/ 下载。

扩展

  Sphinx 0.9.9/Coreseek 3.2 中文参考手册

  Sphinx的使用资料也可以参考这里

备注

  这仅仅是一个引子(备忘录),详细应该看手册,并实际搭建一下实验环境。

时间: 2024-10-27 05:50:52

Sphinx和Coreseek:强大的开源全文检索引擎的相关文章

centos7下搭建sphinx全文检索引擎

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用 程序更容易实现专业化的全文检索.Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL 也设计了一个存储引擎插件. 我要使用Sphinx需要做以下几件事: 1).首先得有数据 2).建立Sphinx配置文件 3).生成索引 4).启动Sphinx 5).php操作使用之(调用api或search

Sphinx 之 Coreseek、Sphinx-for-chinaese、Sphinx+Scws 评测

Sphinx是一个基于SQL的全文检索引擎:普遍使用于很多网站:但由于中英文的差异,其本身,对中文的支持并不好.主要体现在对一段话断词:英文只需按照空格对其分词即可:但对于博大精深的中文来说,却是件困难的事情. 分词在两个地方会用到:1.索引时,根据分词索引原始数据2.搜索时,对用户输入分词,到索引中查询 本文提供了三种目前最常用的方案Coreseek.Sphinx-for-chinaese.Sphinx+Scws,并对其简单对比:在合适的场景,选择合适的方案,得出最优的解. 评测:一.Core

Sphinx以及coreseek的安装及使用

检索结构 php -> sphinx -> mysql 非结构化数据又叫全文数据,非固定长度字段例如文章标题搜索这类适用sphinx 全文数据搜索: 1 顺序扫描 : 如like查找 2 索引扫描 : 把非结构化数据中的内容提取出来一部分重新组织,这部分数据就叫做索引 全文检索分为两个过程 1.创建索引 2.搜索索引 创建索引: sphinx通过语言处理组件会把搜索语句中的标点符号,语气助词给过滤掉,然后处理完毕后会 分析出一些词语,传给索引组件,然后排序去除重复词语. 搜索索引: 搜索关键字

linux下安装全文检索引擎---sphinx(1)

1. sphinx 全文检索引擎,有分tar.gz包安装和rpm包安装 2. 目前本人用的是rpm包进行安装,经过一番折腾,终于安装成功. 3. 安装rpm 时遇到的问题:如图 解决方式: 下载依赖包. 历时三个步骤下载安装. 前两个需要下载,第三个直接安装 rpm -ivh  MySQL-shared-compat-5.1.47-1.rhel5.x86_64.rpm rpm -ivh perl-DBD-MySQL-3.0007-2.el5.x86_64.rpm yum -y installmy

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

http://www.chedong.com/tech/lucene.html ********************************************** Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基于词库和自动切分词算法的比较 具体的安装和使用简介:系统结构介绍和演示 Hacking Lucene:简化的查询分析器,删除的

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

Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基于词库和自动切分词算法的比较 具体的安装和使用简介:系统结构介绍和演示 Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 从Lucene我们还可以学到什么 另外,如果是在选择全文引擎,现在也许是试试 Sphinx的时候了:相比Lucene速度更快, 有中文分词的

安装sphinx和coreseek

sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成.当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据. Sphinx的特性如下: a)  高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒); b)  高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响

Android 8款开源游戏引擎

1.Angle  (2D    Java) Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGLES技术开发.该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程. 最低运行环境要求不详. 项目地址:http://code.google.com/p/angle/ 2.Rokon  (2D    Java) rokon是一款Android 2D游戏引擎,基于OpenGL ES技术开

6大主流开源SQL引擎总结,遥遥领先的是谁?

根据 O'Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言.大部分项目都需要一些SQL 操作,甚至有一些只需要SQL.本文就带你来了解这些主流的开源SQL引擎!背景介绍 本文涵盖了6个开源领导者:Hive.Impala.Spark SQL.Drill.HAWQ 以及Presto,还加上Calcite.Kylin.Phoenix.Tajo 和Trafodion.以及2个商业化选择Oracle Big Data SQL 和IBM Big SQL,IBM 尚未将后者