`
- 浏览:
2184144 次
- 性别:
- 来自:
北京
-
lucene是java写的,以lucene为基础,有更多熟知的开源产品:zoie+sensei、solr、katta、elasticsearch、solandra等。
zoie用于实时索引,zoie+sensei实现了分布式索引。
solr、elasticsearch类似,都实现了分布式索引、近实时索引等
solandra基于solr和nosql数据库cassandra的分布式搜索引擎,底层上重写了solr索引的存储,把索引数据保存到cassandra。
sphinx是c++写的,有极高的写索引效率,很好的和mysql集成,比如编译mysql的时候可以作为一个模块,这样在用sql中用like的地方 就可以直接替换成sphinx语法了,真爽。
ps:理解lucene的原理后,重写一个lucene并不难,难的是如何复制一个lucene活跃的社区。
---------------------------------------------------------------------------------------
Sphinx是一个俄国人开发的搜索引擎,
Sphinx建索引速度是最快的,比Lucene快9倍以上。因此,Sphinx非常适合做准实时搜索引擎。
它的主要特点是:
一、性能非常出色
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。ferret也望尘莫及,更不要说lucene了。
二、和数据库集成性很好
Sphinx通过配置文件可以自行读取数据库信息做索引,不依赖任何外部的应用程序,并且可以作为一个daemon进程启动,支持分布式检索,并发响应性能很好。因此很多过去使用ferret的人因为并发检索的问题都改用Sphinx了。
三、可以做MySQL的全文检索
MySQL的数据库引擎是可插拔的结构,Sphinx开发了一个SphinxSE数据库引擎,可以在编译MySQL的时候直接编译到MySQL里面去,这样的话,可以在数据库级别支持高性能的全文检索,那么你可以以如下SQL方式去全文检索了:
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;
很棒吧。
四、RoR支持也很棒
有一个acts_as_sphinx插件,类似acts_as_ferret,集成到RoR里面很简单。
Sphinx支持UTF-8编码的分词,但是他自己的文档上面说仅仅支持英文和俄文的分词,现在也有插件支持中文的了。
他和Lucene 的比较:
Lucene作为一个全文检索引擎,其具有如下突出的优点:
(1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。
(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
(3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
(4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。
(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询、分组查询等等。
MG4J 是另一个搜索engine 。与Lucene 主要区别是,它提供了cluster 功能,具有更OO的设计方式。
MG4J可以让你为大量的文档集合构建一个被压缩的全文本索引,通过使内插编码技术。
Sphinx支持高速建立索引(可达10MB/秒,而Lucene建立索引的速度是1.8MB/秒)
高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)
高扩展性(实测最高可对100GB的文本建立索引,单一索引可包含1亿条记录)
支持分布式检索
支持基于短语和基于统计的复合结果排序机制
支持任意数量的文件字段(数值属性或全文检索属性)
支持不同的搜索模式(“完全匹配”,“短语匹配”和“任一匹配”)
支持作为Mysql的存储引擎
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
《C#实现的开源搜索引擎深度解析》 在IT领域,搜索引擎是信息检索的重要工具,而C#作为.NET框架下的主流编程语言,也被广泛应用于各种软件开发,包括搜索引擎的实现。本篇文章将深入探讨一个基于C#编写的开源搜索...
本文将介绍几个知名的开源项目,包括Lucene、LIUS、Egothor和Xapian。 1. **Lucene** Lucene是由Apache基金会维护的全文搜索引擎工具包,由Doug Cutting创建。它不是一个完整的搜索应用,而是专注于文本索引和搜索...
**Node.js-Ambar:开源文档搜索引擎的深度解析** 在当今数字化的世界中,高效地管理和搜索大量文档变得至关重要。为此,开发者们引入了各种工具和技术,其中Node.js平台上的Ambar便是一个优秀的解决方案。Ambar是一...
在本教程中,作者于天恩提供了关于如何迅速搭建全文搜索平台的开源搜索引擎实战指导。全文搜索平台是一种高效的信息检索系统,它允许用户通过输入关键词快速查找相关文档或数据。开源搜索引擎由于其开放性、可定制性...
通过深入研究和理解这个开源项目,开发者不仅可以学习到如何构建一个MP3搜索引擎,还能提升PHP编程、Web开发、数据抓取等方面的技术能力。对于想涉足音乐类Web应用开发的个人或团队,这是一个宝贵的实践平台。
搜几下首先集合了更大实用搜索引擎或网站的搜索接口,实现一个关键字,同时查询多家资源。搜几下-上网搜索、找资料必备工具,为您准备了最先进的搜索引擎,让您搜索查找资料更加方便。使用搜几下您可以查找:百科、...
《开源的搜索引擎工具包和Web搜索引擎系统》这篇文章探讨了几个主要的开源搜索引擎工具包,它们在互联网信息检索领域扮演着重要角色。以下是这些工具包的详细介绍: 1. Lucene:由Doug Cutting创建的Lucene是Apache...
倒排索引的构建包括以下几个步骤: 1. **分词**:对每个文档进行预处理,将文本内容拆分成独立的词汇单元,这个过程称为分词。对于中文,由于没有明显的空格分隔,通常需要使用中文分词库,如jieba分词,进行词的...
**搜索引擎的工作流程**包括以下几个关键步骤: 1. **爬虫**:这是整个系统的核心部分,它按照预设的规则(如种子URL、爬行深度等)在网络中爬行,抓取新的网页。在PHP中,这通常涉及到HTTP请求库的使用,如cURL,来...
这几年nodejs越来越火爆,js程序员们终于可以不局限于浏览器那一亩三分地了,很多以前由java,c等实现的东西纷纷有了nodejs版本,我也随波逐流一把,写了一个nodejs的搜索引擎addon 这个开源addon其实是对我几年前写...
开源搜索引擎通常由全球开发者社区共同维护,为用户提供自定义、可扩展和高度可配置的搜索解决方案。本文将深入探讨开源搜索网站的相关知识点,包括它们的工作原理、主要优势、常用开源项目以及如何利用这些项目搭建...
总之,Nutch是一个强大的开源搜索引擎工具,它不仅适用于构建自己的搜索引擎,也是研究和学习搜索引擎技术的理想平台。通过熟悉其工作流程、分析源代码以及查阅相关文档,你将能够掌握搜索引擎的核心技术和实现细节...
"天网搜索引擎rar"是一个开源的搜索引擎源码项目,它为学习C++编程语言和理解搜索引擎工作原理提供了宝贵的资源。这个压缩包包含了实现搜索引擎所需的所有核心组件,是开发者深入研究和实践的重要工具。 搜索引擎...
《网博垂直搜索引擎完全开源版:深度解析与应用探索》 在互联网的海量信息中,搜索引擎扮演着至关重要的角色,帮助用户快速定位所需内容。网博垂直搜索引擎完全开源版,作为一个专门为特定领域定制的搜索解决方案,...
实现Java搜索引擎的关键技术主要包括以下几个方面: 1. **网络爬虫**:Java搜索引擎首先需要一个网络爬虫来抓取互联网上的网页内容。网络爬虫使用Java的HttpURLConnection或HttpClient库进行HTTP请求,获取网页HTML...
在基于Lucene的Web搜索引擎实现中,主要涉及以下几个方面: - **索引构建**:Lucene首先对网页内容进行分词,然后创建倒排索引,以便快速定位包含特定关键词的文档。 - **文本处理**:包括停用词过滤、词干化和词...
对服务器要求低(租个几百元的空间就可以运行),很适合地方网站站长,低成本拥有自己的搜索引擎。 软件授权:永久免费开源 对服务器要求低,租个几百元的空间就可以运行 很适合地方网站站长,低成本拥有自己的...