各种开源搜索引擎

C/C++语言: Zettair、lucy、XMLSearch、Omega、Xapian(支持多语言)、Swish++、 Swish—E、Sphinx

Java:Lucene(相关项目支持多语言)、solr、elasticsearch、Katta 、MG4J(Managing Gigabytes for Java)、Egothor、OpenSearchServer、HSearch、campass

其它:Lemur(c/c++、c#、java)、Indri、YaCy、起点R3(中国)、

   其中部分项目是基于其它项目的,如Omega基于Xapian,solr/elasticsearch基于lucene,等等。还有一些其它的开源项目不在词列表,甚至有些也基于以上某个项目开发(如coreseek),在此就不一一列举

除了上面列举的项目之外,还有一些其它的开源项目,但在这里主要想介绍如下几个项目:Zettair、MG4J、Lemur、Lucene系、openSearchServer、Sphinx

Zettair

     由RMIT大学以C语言实现的一个开源索引软件。搜索方面支持 排序、简单的布尔查询及短语查询。使用BSD-style license.

这里要提到一点,倒排文件相关文档最早可追溯到1993年Justin Zobel 提出的文献[1]。之后其又与Alistair Moffat 、Hugh Williams等对算法 进行多次改进从而更有效的进行压缩和检索文本内容。而Zettair就是在原算法作者参与的情况下完成的代码。因此作为 出自学院派之手的Zettair得到外界如此的评价就无可厚非了:

代码简洁精炼,算法高效。是学习倒排索引经典算法的非常好的实例

    Zettair提供了高效的文本索引能力,使用较短的时间就能够索引大量的文本,而且随文本量增大,性能下降较小,网上测试称其索引速度略快于目前其它主流开源搜索软件,包括lucene3.X(当时lucene还没出4.0,4.0的索引部分做了较大优化)。但另一方面zettair提供的搜索特性却相对简单,不能满足通常的使用,想要使用高级的搜索特性还需要用户自己进行二次开发。

官网:http://www.seg.rmit.edu.au/zettair/

MG4J

     MG4J是在由H.Witten,Alistair Moffat和Timothy所写的《深入搜索引擎:海量信息的压缩、索引和查询》(《Managing Gigabyte》信息检索实现方面的经典教材)中被提到的。该项目最初的目的并不是作为搜索引擎而开发。当时作者正为新西兰图书管开发一个数字化图书管理的系统(New Zealand Digital Library(http://www.nzdl.org))。为了方便管理和检索图书而开发了该系统,后来被命名为MG。但他使用的算法和技术的确也是后来搜索引擎沿用的算法。所以后人可以将MG当作一个搜索引擎来使用,其效率也非常不错。

   H.Witten,早期专注信息检索,之后投身文本挖掘并开发了著名的weka数据挖掘工具(java)。同时写了一本名为《Data Mining:Practical Machine Learning Tools and Techniques》的书介绍该工具的使用。

  Alistair Moffat,对倒排算法的改进有较大的贡献,同Justin Zobel共同发表过多篇关于倒排的文章。

Lemur

   Lemur包主要用于科研机构和大学。基于他的Indri 是一个知名的搜索引擎。该项目由马塞诸塞大学的智能信息检索中心和CMU联合开发。Lemur除了提供搜索的目的之外还可以进行进一步的数据挖掘工作,如文本聚类。该项目提供了其它的文本分析工具和一些公用数据集

Lemur官网:http://www.lemurproject.org/

Lucene系

   Lucene及其衍生的搜索引擎较多。由于其面向商用的最早开源搜索包之一。参与该开源项目的社区人数众多,使得其发展迅速,很开成为公司和个人开发的首选。目前较热门的两个基于lucene的项目是solr和ElasticSearch。Solr版本目前到4.3.1 ,其从4.0后转向cloud。但到目前为止solrcloud项目的稳定性并不是很好,稳定期估计还需要1年以上的时间(solr3.x是非常稳定高效的);另一面同样基于cloud的ElasticSearch的社区人员较少,但设计和稳定性都不错,开发早于solr4.0 两年左右的时间,所以成熟的较早。更多信息及文档可以参考官网。网上参考资料也比较多

Solr:http://lucene.apache.org/solr/

ElasticSearch:http://www.elasticsearch.org/

openSearchServer

     openSearchServer是由一个法国团队开发的开源项目。它对外提供saas服务。同时也允许免费下载,自己部署。后者还可以购买他们的support,价格非常便宜。OSS提供大部分的高级搜索功能;可以解析大部分格式的文档;提供了XML和Json的REST API;支持17种语言包括中文。监控以及其他高级功能都比较健全,甚至可以和solr相比。OSS同样提供了很多的文档和视屏帮助开发者使用

      OSS最大的亮点是集成了多种爬虫。Web、文件系统和数据库的都有。其性能如何目前没有较严谨的说法。

openSearchServer:http://www.open-search-server.com

Sphinx

   Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。由于Sphinx使用hash树处理倒排结构,所以索引搜索速度都很快。Sphinx 十分适用于搜索静态表或更新较少的数据集,而对于处理更新较多的数据集则并不是其强项(由hash树的结构决定),更不适合于实时搜索。如果只是希望加强对数据库数据的搜索,并且索引更新较少,sphinx是不错的选择。

Sphnix中文博客(非官方):http://www.sphinxsearch.org/

Sphinx官网: http://www.sphinxsearch.com/downloads.html

Ref:

1. Justin Zobel, Alistair MoffatRon Sacks-Davis: Searching Large Lexicons for Partially Specified Terms using Compressed Inverted Files.VLDB 1993: 290-301



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值