9个基于Java的搜索引擎框架

455

在这个信息繁杂的互联网时代,我们已经学会了如何通过搜索引擎寻找目标信息,比如你可能会在百度上搜索圣诞节如何让女朋友开心。那么如何使用户在自己开发的网站系统中能搜索一些重要信息,并且以结构化的形式展现给用户,下面分享给大家的9个Java搜索引擎框架也许对你有帮助。

1、Java全文搜索引擎框架Lucene

Lucene是目前最受欢迎的Java全文搜索引擎框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎部分文本分析引擎。Lucene为开发人员提供完整的工具包,可很方便地实现全文检索功能。后面有几个搜索引擎框架是基于Lucene实现的。

官方网站:Apache Lucene

2、开源Java搜索引擎Nutch

Nutch是一个开源Java实现的搜索引擎,提供运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。

利用Nutch,可以做出以下功能:

每月取几十亿网页

为这些网页维护一个索引

对索引文件进行上千次/秒的搜索

提供高质量的搜索结果

以最小成本运作

官方网站:Nutch

3、分布式搜索引擎ElasticSearch

ElasticSearch是一款基于Lucene框架的分布式搜索引擎,并且也是一款为数不多的基于JSON进行索引的搜索引擎。ElasticSearch特别适合在云计算平台上使用。

官方网站:elastic

4、实时分布式搜索引擎Solandra

Solandra是一个实时分布式搜索引擎,基于Apache Solr和Apache Cassandra构建。 其特性如下:

支持Solr的大多数默认特性(搜索, faceting, highlights);

数据复制,分片,缓存及压缩都由Cassandra来进行;

Multi-master (任意结点都可供读写);

实时性高,写操作完成即可读到。 添加新的SolrCores很方便,不需要重启整个集群。

官方网站:github.com/tjake/Solandra

5、IndexTank

IndexTank是一套基于Java的索引-实时全文搜索引擎实现,IndexTank有以下几个特点:

索引更新实时生效

地理位置搜索

支持多种客户端语言 Ruby, Rails, Python, Java, PHP, .NET & more!

支持灵活的排序与评分控制

支持自动完成

支持面搜索(facet search)

支持匹配高亮

支持海量数据扩展(Scalable from a personal blog to hundreds of millions of documents! )

支持动态数据

官方网站:https://github.com/linkedin/indextank-engine

6、搜索引擎Compass

Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架.Compass包括:

搜索引擎抽象层(使用Lucene搜索引荐)

OSEM (Object/Search Engine Mapping) 支持

事务管理

类似于Google的简单关键字查询语言

可扩展与模块化的框架

简单的API

官方网站:http://www.compass-project.org/

7、Java全文搜索服务器Solr

Solr也是基于Java实现的,并且是基于Lucene实现的,Solr的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果。值得注意的是,Solr还提供一款很棒的Web界面来管理索引的数据。

官方网站:http://lucene.apache.org/solr/

8、Lucene图片搜索LIRE

LIRE是一款基于Java的图片搜索框架,其核心也是基于Lucene的,利用该索引就能够构建一个基于内容的图像检索(content- based image retrieval,CBIR)系统,来搜索相似的图像。

官方网站:http://www.semanticmetadata.net/lire/

9、全文本搜索引擎Egothor

Egothor是一个用Java编写的开源而高效的全文本搜索引擎。借助Java的跨平台特性,Egothor能应用于任何环境的应用,既可配置为单独的搜索引擎,又能用于你的应用作为全文检索之用。

官方网站:http://www.egothor.org/cms/

当前文章:Search » 9个基于Java的搜索引擎框架