浅析目前基于Lucene的八个开源搜索引擎框架

《浅析目前基于Lucene的八个开源搜索引擎框架》

目前基于Lucene的主流开源搜索引擎主要有:ApacheSolr,,Index Tank,Katta,BoboSearch ,Compass,Summa,Constellio。其中Elasticsearch和Solr市场使用面很广,社区活跃度也比较高。

一张表格来从概念上看一下这些框架都有什么特性。

框架名称 特性特点 项目地址
Apache Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。 http://lucene.apache.org/solr/
Elastic Search ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。 http://www.elasticsearch.com
Index Tank IndexTank, 一套基于Java的索引-实时全文搜索引擎实现,Includes features like variables (boosts), categories (facets), faceted search, snippeting, custom scoring functions, suggest, and autocomplete。IndexTank的设计分离了相关性标记和文档内容,因为相关性标记的生命周期和文档本身是不一样的,特别是在用户创建的内容的情况下,例如 分享次数,Like按钮,+1按钮等等。 https://github.com/linkedin/indextank-engine
Katta Katta是一个可扩展的、故障容错的、分布式实施访问的数据存储。Katta可用于大量、重复、索引的碎片,以满足高负荷和巨大的数据集。这些索引可以是不同的类型。当前该实现在Lucene和Hadoop mapfiles。 http://katta.sourceforge.net/
Bobo Search bobo-browse 是一用java写的lucene扩展组件,通过它可以很方便在lucene上实现分组统计功能。比如说搜索电脑,可以得到cpu是intel的有几条命中记录,cpu是amd的有几条命中记录。 https://github.com/javasoze/bobo
Compass Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架.Compass包括:

* 搜索引擎抽象层(使用Lucene搜索引荐),
* OSEM (Object/Search Engine Mapping) 支持,
* 事务管理,
* 类似于Google的简单关键字查询语言,
* 可扩展与模块化的框架,
* 简单的API.

http://www.compass-project.org/
Summa Summa是一种由java开发的,快速模块化和可扩展的搜索引擎. Summa 有如下特点:

综合搜索. Summa 能够同时访问许多不同的数据和资料来源,并以一个统一的接口;

公开模块化设计.Summa 搜索系统由一系列独立模块组成, 这样使得它更简单容易地被维护和升级;

可扩展性. Summa 支持分布式架构而且能够按比例的扩大或缩小以处理任何数量的数据;

开放标准. Summa 基于现代web技术与标准, 不包含任何私有代码或原理;

故障容错. 如果某单一数据资源或服务出错, Summa 将会继续运行而不受出错部分限制。

http://wiki.statsbiblioteket.dk/summa/
Constellio Constellio 是一个开源的搜索解决方案,适合企业级的搜索。基于 Apache Solr 项目构建,使用 做为搜索引擎,并提供基于 Web 的网页和文档的检索。可选择文档类型、文件夹以及文件名进行检索。 http://constellio.com/

基本概念上面基本罗列出来,可以对这些基于lucene的开源框架有个浅层次上的认知。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注