简介
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎
Lucene流行和成功的一个关键因素是它的简单。
不同的人使用不同的方法解决相同的问题—即信息超负荷问题。一些人使用新的用户接口来工作,一些使用智能代理,还有一些使用发展较为成熟的搜索工具如Lucene。本章稍后我们展示代码示例之前,我们将提供给你一张高层次的图来说明Lucene是什么,它不是什么和它以后会变得怎样。
Lucene是一个高性能、可伸缩的信息搜索(IR)库。它使你可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的成熟的、免费的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于在Apache软件许可 [ASF, License]。同样,Lucene是当前与近几年内非常流行的免费的Java信息搜索(IR)库。
注意:我们将使用术语IR(InformationRetrieval)来描述像Lucene这样的搜索工具。人们常常将IR库归诸于搜索引擎,但是一定不要将IR库与web搜索引擎混为一谈。
正如你马上就会发现的,Lucene提供了一组简单却足够强大的核心API,只需要最小限度地理解全文索引和搜索。你只须学习它的几个类从而把Lucene集成到一个应用程序中。因为Lucene是一个Java库,它并不限定要索引和搜索的内容,这使得它比其它一些搜索程序更具有优势。
刚接触Lucene的人经常把它误解为一个现成的程序,类似文件搜索程序或web网络爬行器或是一个网
站的搜索引擎。那些都不是Lucene:Lucene是一个软件库,一个开发工具包(如果你想这样称呼),而不是一个具有完整特征的搜索应用程序。它本身
只关注文本的索引和搜索,并且这些事它完成的非常好。Lucene使得你的应用程序只针对它的问题域来处理业务规则,而把复杂的索引和搜索实现隐藏在一组
简单易用的API之后。你可以把Lucene认为成一层,应用程序位于它之上, 大量基于Lucene的完整的搜索程序已经构建出来。
lucene能做什么
Lucene使你可以为你的应用程序添加索引和搜索能力(这些功能将在1.3节中描述)。Lucene可以索引并能使得可以转换成文本格式的任何数据能够被搜索。Lucene并不关心数据的来源、格式甚至它的语言,只要你能将它转换为文本。 这就意味着你可经索引并搜索存放于文件中的数据:在远程服务器上的web页面,存于本地文件系统的文档,简单的文本文件,微软Word文档,HTML或PDF文件或任何其它能够提取出文本信息的格式。
同样,利用Lucene你可以索引存放于数据库中的数据,提供给用户很多数据库没有提供的全文搜索的能力。一旦你集成了Lucene,你的应用程序的用户就能够像这样来搜索:+George +Rice –eat –pudding, Apple –pie +Tiger, animal:monkey AND food:banana等等。利用Lucene,你可以索引和搜索email邮件,邮件列表档案,即时聊天记录,你的Wiki页面……等等更多。
lucene的优势
Lucene是一个高性能、可伸缩的信息搜索(IR)库。它使你可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的成熟的、免费的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于在Apache软件许可 [ASF, License]。同样,Lucene是当前与近几年内非常流行的免费的Java信息搜索(IR)库。
Lucene作为一个全文检索引擎,其具有如下突出的优点:
1、索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。
2、在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
3、优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
4、设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。
5、已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search[11])、分组查询等等。
分享到:
相关推荐
### Lucene 使用教程 #### 一、Lucene简介与安装 **1.1 Lucene简介** Lucene是一款高性能、全功能的文本搜索引擎库,由Java编写而成,它为开发者提供了构建搜索应用程序的基础工具。Lucene的主要特点包括: - **...
**一、Lucene简介** Lucene是一个高性能、全文检索库,它是Apache软件基金会的顶级项目之一。它提供了一个可扩展的搜索和索引框架,开发者可以利用这个框架快速地在自己的应用程序中构建强大的搜索功能。 **二、...
### Lucene 使用教程 #### 一、Lucene简介 Lucene是一个高性能、全功能的文本搜索引擎库,由Java编写而成,被广泛应用于各种基于文本的数据检索场景中。无论是用于网站内容搜索还是文档管理系统的全文搜索功能,...
### Apache Lucene教程知识点概述 #### 一、Apache Lucene简介 - **Lucene定义**:Lucene是一款高性能、全功能的文本搜索引擎库,由Java编写而成,是Apache基金会下的一个开源项目。 - **发展历程**:自1999年由...
**Lucene项目简介** Lucene是一个高性能、可扩展的信息检索库,由Apache软件基金会开发并维护。它是一个Java写的开源库,广泛应用于构建全文搜索引擎,为开发者提供了在各种应用程序中实现全文搜索功能的能力。这个...
### Lucene初级教程知识点详解 #### 1. Lucene简介 - **1.1 什么是Lucene** - Lucene是一种高性能的全文检索框架,它主要用于构建搜索引擎的基础架构。与百度或Google Desktop这类直接可用的应用产品不同,Lucene...
**搜索引擎 Lucene PPT 教程** Lucene是一款开源全文...通过这个PPT教程,你将全面了解Lucene的原理、使用方法以及如何在实际项目中集成和优化搜索引擎。每个章节都会结合实例,帮助你更好地掌握这一强大的搜索工具。
### Lucene初级教程知识点概述 #### 1. Lucene简介 - **定义**: Lucene是一个开源的全文搜索引擎库,主要用于构建应用程序的搜索功能。与直接使用的搜索引擎产品不同,Lucene提供了一个开发平台,让开发者能够根据...
1. **解压缩**:使用解压软件打开下载的“lucene-2.0.0.zip”,将其内容释放至预选的目录中。 2. **复制JAR文件**:将解压后得到的“lucene-demos-2.0.0.jar”和“lucene-core-2.0.0.jar”两个JAR文件复制到JDK的...
1. **JavaCC简介** `JavaCC`是基于Java的词法和语法分析器生成器,它使用Java源代码作为输入,生成解析器和词法分析器的Java源代码。这些生成的解析器可以解析符合特定语法规则的输入,是构建编译器、解释器或者...
1. **Lucene简介**:Lucene是一个高性能、全文本搜索库,它提供了完整的搜索功能,包括索引、查询、高亮显示结果等。它不包含Web服务器或用户界面,而是作为其他应用程序的一个组件来使用。 2. **工作原理**:...
1. **Lucene.net简介**:Lucene.net是一个开源的、高性能的全文检索库,它提供了一套高级的搜索功能,包括分词、索引和查询处理。这个库的核心特性在于它的索引技术,能够快速地查找和返回匹配文档。 2. **基本架构...
### Lucene初级教程知识点 #### 1. Lucene简介 - **1.1 什么是Lucene** - Lucene是一个开源的全文检索引擎工具包,主要用于构建搜索应用程序的基础架构。与成品搜索引擎(如Google或Baidu)不同,Lucene提供了一个...
2天学习ElasticSearch教程(3G)〖课程介绍〗:2天学习ElasticSearch教程(3G)〖课程目录〗:elasticsearch-1---视频┃---01全文检索概念.mp4┃---02Lucene的API介绍.mp4┃---03Lucene的API介绍.mp4┃---04Lucene的API...
### Lucene简介 Apache Lucene 是一个开源的搜索引擎库,提供了构建全文搜索功能的完整工具包,包括索引和搜索文档。它由Java编写,支持快速的全文本搜索,并且可以轻松地集成到其他应用程序中。Lucene适用于需要在...
1. **Lucene简介**: Lucene是一个开源的全文检索引擎,它提供了文本分析、索引创建、搜索优化等功能。它并不提供完整的Web应用程序,而是作为其他应用的组件,用于实现强大的全文搜索功能。Lucene具有高效性和灵活...
这个压缩包中的内容可能是关于如何使用Lucene进行全文检索的一个基础教程和示例代码。 **一、Lucene的基本概念** 1. **文档(Document)**:在Lucene中,每个要被搜索的信息被看作一个文档,可以包含多个字段...