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

9个基于Java的搜索引擎框架
转自:http://blog.csdn.net/xiaomin1991222/article/details/50980573
1、Java 全文搜索引擎框架 Lucene
毫无疑问,Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene为开发人员提供了相当完整的工具包,可以非常方便地实现强大的全文检索功能。下面有几款搜索引擎框架也是基于Lucene实现的。

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

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

利用Nutch,你可以做到以下这些功能:

每个月取几十亿网页
为这些网页维护一个索引
对索引文件进行每秒上千次的搜索
提供高质量的搜索结果
以最小的成本运作
官方网站:http://nutch.apache.org/

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

官方网站:http://www.elasticsearch.org/

4、实时分布式搜索引擎 Solandra
Solandra 是一个实时的分布式搜索引擎,基于 Apache Solr 和 Apache Cassandra 构建。

其特性如下:

支持Solr的大多数默认特性 (search, faceting, highlights)
数据复制,分片,缓存及压缩这些都由Cassandra来进行
Multi-master (任意结点都可供读写)
实时性高,写操作完成即可读到
Easily add new SolrCores w/o restart across the cluster 轻松添加及重启结点
官方网站:https://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/

本文链接:http://www.codeceo.com/article/8-java-search-engine.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向切面编程--AOP(二)

转自:http://www.cnblogs.com/qicosmos/p/3154174.html (原创)c11改进我们的模式之改进代理模式,实现通用的AOP框架 c11 boost技术交流群:296561497,欢迎大家来交流技术。 本次要讲的时候如何改进代理模式,具体来说是动…

TimesIsMoney

Problem Description 给你一个序列,有N个整数(int以内),判断一个数在这个序列中出现几次。 Input 多组输入,输入到文件结尾 首先输入一个n,然后输入n个整数。 在输入一个m,代表查询的个数 &…

redis参考优秀文章

文章地址 写的很详细,做个记录

VS2013常用快捷键设置

Visual Studio 2013 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。VS 2013 中新增了很多提高开发人员工作效率的新功能,比如自动补全方括号、使用快捷键移动整…

多次访问redis造成redis连接总是断开的解决方案

之前做了一个新闻推荐项目用到redis,当把项目发布到线上去测试的时候,用两个redis(线上服务采用LVS负载均衡,两个可以切换)的时候发现开始跑的时候没有问题,但是过一段时间当用户访问量特别大的时候有一个redis总断开连接的问题&a…

USB Flash Drives

Description Sean is trying to save a large file to a USB flash drive. He has n USB flash drives with capacities equal to a1, a2, ..., an megabytes. The file size is equal to m megabytes. Find the minimum number of USB flash drives needed to write Seans …

VS2013+VSVIM

上世纪90年代后期出现了一股.com热潮,相信大家对其都有美好的回忆,那时使用CGI和Perl创建“动态的”网站,通过使用在Unix上的vi编辑器快速打字和格式化,这也包括后来使用的vi的复制版本vim。我可能是怀旧的,但我想念将…

activeMQ发送与接受消息模板代码

发送着: /*** */ package activemqAPI.helloworld;import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import …

做一个优秀的项目/产品经理

1、工作中,在时间、质量、成本三者之间找到平衡,带领团队成功研发并上线项目。 解决好以下细节问题,就达到一个合格IT项目经理了: 项目的由来,为什么要建立这么一个系统? 项目有计划吗? 项目的需…

一个程序员的日常书单

本想谈谈读书这个话题,想来想起觉得无从下手,就此作罢.毕业这几年,一直不敢放松,在现代这个互联网时代更加认同萧抡谓的”一日不读书,胸臆无佳想;一月不读书,耳目失清爽”.如果非要给自己找个读书的理由的话,这句诗就是最好的理由:”胸藏文墨虚若骨,腹有诗书气自华”. 与书结缘…

【转载】ssdb安装部署

转载地址:https://www.cnblogs.com/dyfblog/p/5894518.html ssdb是一款类似于redis的nosql数据库,不过redis是基于内存的,服务器比较昂贵,ssdb则是基于硬盘存储的,很容易扩展,对于一些对速度要求不是太高的…

2017年回顾及总结

从2015毕业至今,在c开发领域算起来已经差不多两年多的时间了。在这三年的时间里,涉及到的c领域的技术基本上从广度上有了一个大概的学习和认知。各个方面的知识都有所掌握,包括c底层实现,网络通信,并行开发&#xff0c…

Amr and Pins

Description Amr loves Geometry. One day he came up with a very interesting problem. Amr has a circle of radius r and center in point (x, y). He wants the circle center to be in new position (x, y). In one step Amr can put a pin to the border of the circl…

TCP/IP学习

http://blog.csdn.net/column/details/15153.html?

ngnix 作用(通俗易懂)【转载】

作者:RayeWang www.raye.wang/2017/02/24/quan-mian-liao-jie-nginxdao-di-neng-zuo-shi-yao/ 前言 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整&#xff0…

C++11并发实战(专栏)

http://blog.csdn.net/column/details/ccia.html?&page2

LCIS

Problem DescriptionAlex has two sequences a_1,a_2,...,a_na​1​​,a​2​​,...,a​n​​ and b_1,b_2,...,b_mb​1​​,b​2​​,...,b​m​​. He wants find a longest common subsequence that consists of consecutive values in increasing order. InputThere are mu…

TimeUnit.SECONDS.sleep()和sleep区别

刚看到TimeUnit.SECONDS.sleep()方法时觉得挺奇怪的,这里怎么也提供sleep方法? public void sleep(long timeout) throws InterruptedException {if (timeout > 0) {long ms toMillis(timeout);int ns excessNanos(timeout, ms);Thread.sleep(ms, …

c++11并发指南系列

https://www.cnblogs.com/haippy/archive/2013/08/27/3284540.html

hashmap另一种初始化

代码&#xff1a; new HashMap<String,Integer>() {{put("a", 0);put("b", 0);put("c", 0);}}; 用处&#xff1a; for (Entry<String, String> entry : set) {value entry.getValue();try {if(k 5) {break;}json new JSONObjec…