`

Apache Lucene 介绍

阅读更多

转载自:http://www.blogjava.net/dreamstone/archive/2007/06/11/123317.html

什么是lucene
Apache Lucene是一个开放源程序的搜寻器引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。 Lucene是apache软件基金会项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

Lucene的作者:
Lucene的原作者是Doug Cutting,他是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。

Lucene的历史:
早先发布在作者自己的
http://www.lucene.com/,后来发布在SourceForge,2001年年底成为apache软件基金会jakarta的一个子项目。 现在则是apache的顶级项目http://lucene.apache.org/

Lucene应用:
apache软件基金会的网站使用了Lucene作为全文检索的引擎
IBM的开源软件eclipse也采用了Lucene作为帮助子系统的全文索引引擎,
相应的IBM的商业软件Web Sphere中也采用了Lucene。
著名的Jive论坛使用了它
Eyebrows(EyeBrows是目前APACHE项目的主要邮件列表归档系统)邮件列表HTML归档/浏览/查询系统
也使用了它
Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。
Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene
到现在lucene已经有C++、C#、Python和Perl的版本
更多关于lucene的应用见这里:
http://wiki.apache.org/lucene-java/PoweredBy

Lucene能做什么
Lucene使你可以为你的应用程序添加索引和搜索能力(这些功能将在1.3节中描述)。Lucene可以索引并能使得可以转换成文本格式的任何数据能够被搜索。在图1.5可以看出,Lucene并不关心数据的来源、格式甚至它的语言,只要你能将它转换为文本。这就意味着你可经索引并搜索存放于文件中的数据:在远程服务器上的web页面,存于本地文件系统的文档,简单的文本文件,微软Word文档,HTML或PDF文件或任何其它能够提取出文本信息的格式。

同样,利用Lucene你可以索引存放于数据库中的数据,提供给用户很多数据库没有提供的

全文搜索的能力。一旦你集成了Lucene,你的应用程序的用户就能够像这样来搜索:+George +Rice –eat –pudding, Apple –pie +Tiger, animal:monkey AND food:banana等等。利用Lucene,你可以索引和搜索email邮件,邮件列表档案,即时聊天记录,你的Wiki页面……等等更多。

Lucene资料:
Lucene主页:
http://lucene.apache.org/

中文的lucene教程: http://www.chedong.com/tech/lucene.html#intro

写的很好的lucene书:lucene in action

luceneAPI:http://lucene.zones.apache.org:8080/hudson/job/Lucene-Nightly/javadoc/

lucene in action 示例代码:http://www.manning.com/hatcher2

lucene 的wiki:http://wiki.apache.org/lucene-java/FrontPage?action=show&redirect=FrontPageEN

Lucene的优点:
(1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。
(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
(3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
(4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。
(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询、分组查询等等。

Lucene的周边
Nutch vs Lucene
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。

Nutch vs Larbin
"Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供Nutch vs Larbin
"Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供

Nutch 则还可以存储到数据库并建立索引。

搜索的概念(本段来自lucene in action原文):

索引和搜索

所有搜索引擎的核心就是索引的概念:将原始数据处理成一个高效的交差引用的查找结构以便于快速的搜索。让我们对索引和搜索过程做一次快速的高层次的浏览。

 

什么是索引,为什么它很重要?

想像一下,你需要搜索大量的文件,并且你想找出包含一个指定的词或短语的文件。你如何编写一个程序来做到这个?一个幼稚的方法是针对给定的词或短语顺序扫描每个文件。这个方法有很多缺点,最明显的就是它不适合于大量的文件或者文件非常巨大的情况。这时就出现了索引:为了快速搜索大量的文本,你必须首先索引那个文本然后把它转化为一个可以让你快速搜索的格式,除去缓慢的顺序地扫描过程。这个转化过程称为索引,它的输出称为一条索引。你可以把索引理解为一个可以让你快速随机访问存于其内部的词的数据结构。它隐含的概念类似于一本书最后的索引,可以让你快速找到讨论指定主题的页面。在Lucene中,一个索引是一个精心设计的数据结构,在文件系统中存储为一组索引文件。我们在附录B中详细地说明了索引文件的结构,但是目前你只须认为Lucene的索引是一个能快速的词汇查找的工具。

 

什么是搜索?

搜索是在一个索引中查找单词来找出它们所出现的文档的过程。一个搜索的质量用精确度和召回率来描述。召回率衡量搜索系统搜索到相关文档的能力,精确度衡量系统过滤不相关文档的能力。然而,在考虑搜索时你必须考虑其它一些因素。我们已经提到速度和快速搜索大量文本的能力。支持单个和多个词汇的查询,短语查询,通配符,结果分级和排序也是很重要的,在输入这些查询的时候也是友好的语法。Lucene强大的软件库提供了大量的搜索特征、bellswhistles

分享到:
评论

相关推荐

    apache Lucene4.7最全最新的jar包

    Apache Lucene是一个高性能、全文本搜索库,由Java编写,被广泛用于开发搜索引擎和需要文本检索功能的应用程序。Apache Lucene 4.7是该库的一个版本,它提供了丰富的功能和改进,使得开发者能够轻松地在他们的应用中...

    apache下的lucene教程

    ### Apache Lucene教程知识点概述 #### 一、Apache Lucene简介 - **Lucene定义**:Lucene是一款高性能、全功能的文本搜索引擎库,由Java编写而成,是Apache基金会下的一个开源项目。 - **发展历程**:自1999年由...

    Apache Lucene.Net 2.4.0 API Documentation.chm

    Apache Lucene.Net 2.4.0 API

    Apache Lucene全文检索和IKAnalyzer分词工具类

    import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org...

    Apache Lucene-4.10.3源码

    Apache Lucene是一个开源的全文搜索引擎库,...以上是对Apache Lucene 4.10.3版本的一些核心知识点的介绍。这个版本不仅提供了强大的搜索能力,还支持信息检索的各种复杂需求,是开发人员构建高效搜索功能的首选工具。

    Apache Lucene3.0 入门实例介绍

    Apache Lucene是一个高性能、全文本搜索库,由Java编写,被广泛应用于各种搜索引擎的开发中。这个入门实例将引导我们了解如何使用Lucene 3.0版本进行基本的索引和搜索操作。以下是对Lucene 3.0关键知识点的详细讲解...

    apache-lucene-snowball.jar

    jar包,亲测可用

    apache lucene(JAVA检索引擎工具包) v8.8.2 最新版

    apache lucene中文版是一款非常好用的检索工具包,使用方便,功能强大,有需要的朋友不要错过了,而且是完全开放的,你可以自由进行使用,可以支持多种检索功能。兼容多个操作系统,下载后可以直接使用,没有任何...

    lucene org.apache

    org.apache.lucene.analysis.cjk.CJKAnalyzer .......

    cpp-Rucene是ApacheLucene项目的一个Rust移植

    Rucene,作为Apache Lucene的Rust版本,为开发者提供了一种在Rust编程语言中实现高效全文搜索引擎的途径。Apache Lucene是一个广泛使用的开源Java库,专门用于构建高级文本检索功能,而Rucene则将这些功能带入了Rust...

    Lucene.Net

    Apache Lucene.Net is a C# full-text search engine. Apache Lucene.Net is not a complete application, but rather a code library and API that can easily be used to add search capabilities to applications...

    apache lucene solr 官网历史版本 免费下载地址

    http://archive.apache.org/dist/lucene/java/ 这个是lucene的历史版本 http://archive.apache.org/dist/lucene/solr/ 这个是solr的历史版本

    Lucene介绍的PPT

    【Lucene介绍】 Lucene是一个基于Java的全文检索库,由Apache软件基金会的Jakarta项目维护。它不是一个完整的全文搜索引擎,而是一个可嵌入到其他应用程序中的库,用于实现高效、快速的全文检索功能。Lucene的目标...

    lucenenet:Apache Lucene.NET

    Apache Lucene.NET.NET的全文本搜索Apache Lucene.NET是.NET全文搜索引擎框架,是流行的Apache Lucene项目的C#端口。 Apache Lucene.NET并不是一个完整的应用程序,而是可以轻松用于向应用程序添加搜索功能的代码库...

    apache-lucene-analyzers.jar

    Apache Lucene是一个高性能、全文本搜索库,广泛用于构建搜索引擎应用程序。这个名为"apache-lucene-analyzers.jar"的文件是Lucene项目的一部分,主要包含了各种分析器(analyzers)的实现,它们在处理文本数据时起...

    lucene-core-7.7.0-API文档-中文版.zip

    Maven坐标:org.apache.lucene:lucene-core:7.7.0; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...

    apache lucene 4.10.0入门单元测试代码demo

    总结了一些实用的demo 包括: 1.建立索引 2.通过IKAnalyzer搜索中文关键词 3.复杂的多字段搜索 4.多线程并发搜索,通过contiperf测试,详见:...lucene支持多线程并发搜索和建索引,只要IndexWriter是单例模式即可

    java开源系统源码-apache-lucene-beginning:“ApacheLucene开始:Java/开源/全文搜索系统的构建”的代

    java源系统apache-lucene开头 “ Apache Lucene的开始:Java /开源/全文搜索系统的构建”的代码kata。 这是关口浩二(Koji Sekiguchi)的“ Apache Lucene简介:Java,开放源代码和全文本搜索系统的构建”(2006年...

    Lucene简介.介绍

    起初,Lucene 在 Doug 的个人网站上发布,后来移至 SourceForge,并最终在 2001 年底成为 Apache 基金会 Jakarta 项目的一部分,现在可以在 Apache 的官方网站上找到(http://lucene.apache.org)。 **全文检索的...

    Elasticsearch是一个基于Apache Lucene构建的开源分布式搜索和分析引擎,专为云计算环境设计,能够迅速且有效

    elasticsearchElasticsearch是一个基于Apache Lucene构建的开源分布式搜索和分析引擎,专为云计算环境设计,能够迅速且有效地处理大规模数据集。以下是Elasticsearch的详细介绍: 一、基本特性 分布式架构:Elastic...

Global site tag (gtag.js) - Google Analytics