Java开源 搜索引擎

来源:互联网 发布:新三板交易软件 编辑:程序博客网 时间:2024/06/05 15:51

 

 

Java开源 搜索引擎

 

1. Apache Lucene是一个基于Java全文搜索引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。

 

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

 

 

3. Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

 

4. Paoding's Knives中文分词具有极高效率和高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。高效率:在PIII 1G内存个人机器上,1秒可准确分词100万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析。

 

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

 

6. Oxyus是一个纯java写的web搜索引擎。

 

7. BDDBot是一个简单的易于理解和使用的搜索引擎。它目前在一个文本文件(urls.txt)列出的URL中爬行,将结果保存在一个数据库中。它也支持一个简单的Web服务器,这个服务器接受来自浏览器的查询并返回响应结果。它可以方便地集成到你的Web站点中。

 

8. Zilverline是一个搜索引擎,它通过web方式搜索本地硬盘或intranet上的内容。Zilverline可以从PDF, Word, Excel, Powerpoint, RTF, txt, java, CHM,zip, rar等文档中抓取它们的内容来建立摘要和索引。从本地硬盘或intranet中查找到的结果可重新再进行检索。Zilverline支持多种语言其中包括中文。

 

9. XQEngine用于XML文档的全文本搜索引擎.利用XQuery做为它的前端查询语言.它能够让你查询XML文档集合通过使用关键字的逻辑组合.有点类似于Google与其它搜索引擎搜索HTML文档一样.XQEngine只是一个用Java开发的很紧凑的可嵌入的组件.

 

10. Katta是一个可扩展的、高容错性、准实时的分布式搜索引擎。 具有索引复制的功能,会对索引进行分片处理,让索引分散到多个节点上,执行分布式检索。

它能很好的运行在由许多廉价服务器组成的大型集群之上,跟Hadoop MapReduce, Hadoop DFS, HBase, Bigtable or Hypertable类似。
支持不同格式的索引文件,但是目前只实现了lucene索引文件和hadoop mapfiles的读写。

 

* 能轻松的构建处理海量数据的高负载系统
* 索引文件(lucene索引或者hadoop mapfiles)的分片处理,分散到许多台服务器上。
* 多台服务器之间的索引自动复制,高性能和高容错性的特点
* 可插拔的网络拓扑(新增服务器或者移除服务)
* Master故障切换
* 快速的、轻量级的、非常容易整合
* 能很好的在hadoop集群上

 

11. Carrot2是一个开源搜索结果分类引擎。它能够自动把搜索结果组织成一些专题分类。Carrot2提供的一个架构能够从各种搜索引擎(YahooAPI、GoogleAPI、MSN Search API、eTools Meta Search、Alexa Web Search、PubMed、OpenSearch、Lucene index、SOLR)获取搜索结果。 

 

 

12. Regain是一个基于Jakarta Lucene封装的搜索引擎。它能够索引和查询多种格式的文件(当前支持的格式包括:HTML、XML、Excel、Powerpoint、Word、PDF和RTF)。此外它还提供一个标签库以便易于将搜索结果展示在JSP页面中。

 

13. Hounder是一个完善的搜索系统,Hounder只会检索那些出现在互联网上的文档,并通过一个简单的网页来展示搜索结果。能够完美与其它项目相结合。它在各方面的设计都是规模级的包括:索引网页的数量,检索速度,查询并发数。它已经成功应用在多个大型搜索系统中。

 

14. IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。 

IKAnalyzer3.0特性:

  • 采用了特有的“正向迭代最细粒度切分算法“,具有50万字/秒的高速处理能力。
  • 采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。
  • 优化的词典存储,更小的内存占用。支持用户词典扩展定义
  • 针对Lucene全文检索优化的查询分析器IKQueryParser(作者吐血推荐);采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。 
  •  

    15. 只为lucene提供分布式搜索框架。理论上可对千G以上索引文件支持数千万级的用户搜索访问。Nut由Client、Server、Cache和DB四部分构成。Client处理用户请求和对搜索结果排序。Server对请求进行搜索,Server上只放索引,数据存储在DB中,Nut将索引和存储分离。Cache缓存的是搜索条件和结果文档id。DB存储着数据,Client根据搜索排序结果,取出当前页中的文档id从DB上读取数据。

     

     

    更多http://www.open-open.com/32.htm

    原创粉丝点击