大家都知道 Lucene是Apache软件基金会jakarta项目组的一个子项目。跟Solr 和Nutch一样,它们属于Apache下面的子妹项目。前面好多同学都说过了它们间的一些关系,我在重复一下,首先Solr 和Nutch 都是基于Lucene的, 具体的说就是基于Lucene的Searcher和Indexing。而跟Lucene比Solr提供了一些特性的功能,针对一个企业级解决方案,同时Lucene是Nutch的核心部分,但是单单使用Lucene是不能实现搜索引擎的,它仅仅被称为全文检索工具,并没有实现相关网页爬虫(Crawler)的功能,而这个在Nutch中有体现。当然Lucene提供的索引和检索功能已经非常强大了,Lucene的API接口设计得比较通用,输入输入结构都很像数据库的表、记录和字段,这使得Lucene和数据库的结合也比较紧密(只需要将读文件的过程转化成读数据库的过程就行了)
Lucene的工作流程,如图所示:Lucene系统,功能强大,实现也比较复杂,但从根本上来说,主要包括两个主要功能: 1: 建立索引库(将待索引的纯文本内容经切分词后的索引入库), 2: 检索索引库(这是个Lucene的关键部分,Lucene还提供自己的排名机制,这个排名算法比较值得学习)。下面介绍一下Lucene工作流程中的几个比较重要的概念:
1. Raw Content: 这个就是原始的数据,如:文档中的数据或者数据库中的数据。
2. Acquire Content: 这个过程通常是通过crawler或者spider从原始数据获取一些需要被索引的内容(This process, which involves using a crawler or spider, gathers and scopes the content that needs to be indexed),上面说过Lucene并没有提供类似的功能,下面的一些项目中有提供:Solr、Nutch、Grub、Droids、Aperture、The Google Enterprise Connector Manager Project.
3. Build Document: 一旦获得需要被索引的原始数据后,是时候把这些内容转化成搜索引擎的单元(document)了,一个document一般表示为一个PDF文件或一个网页或者数据库表中的一行记录等。并且一个document会由多个fields组成,例如一篇文章,就有title、body、abstract、author和url等。由于document间的格式可能各不相同,所以有时候需要对document进行过滤,Apache Tika提供了相关功能。
4. Analyze Document:学过编译原理的同学应该都知道token的概念,而这一个阶段就是将document转化成独立的多个tokens过程,Lucene提供了一组集成的analyzers,这样你就可以很好的控制这个分析的流程。
5. Index Document: Lucene建立索引的部分是Lucene中最精华的部分,一般最精华的当然也最难懂了,所以暂时知道这是建立索引的阶段就可以了。
- 大小: 61.8 KB
分享到:
相关推荐
【Lucene 简介】 Lucene 是一个强大的开源全文搜索库,由 Java 编写,主要用于为应用程序添加全文检索功能。它不是一个完整的全文搜索引擎应用,而是一个工具包,允许开发者将其集成到自己的软件中,以实现高效、...
### Lucene简介及原理 #### 一、Lucene概述 Lucene是一款优秀的、成熟的、开源的、纯Java语言编写的全文检索工具包。全文检索技术指的是计算机程序通过对文档中的每一个词建立索引的方式,记录每个词在文档中的...
**Lucene搜索引擎简介** Lucene是一个开源的全文检索引擎库,最初由Doug Cutting教授编写,以Java语言实现,主要用于提供文本数据的快速索引和检索功能。随着时间的推移,由于市场需求,Lucene已被移植到.NET、C++...
1. **Lucene简介** 2. **正则表达式(regex)在Lucene中的应用** 3. **regexQuery详解** 4. **示例代码解析** 5. **索引创建与查询流程** 6. **正则表达式的语法** #### Lucene简介 Lucene是一个高性能、全功能的全文...
一、Lucene简介 Lucene是Apache软件基金会的一个开放源代码项目,它提供了一个高性能、全文本搜索的API。Lucene支持索引和搜索文本,可以集成到各种Java应用程序中,帮助开发者轻松实现全文检索功能。其核心特性...
lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。 2 lucene的工作方式 lucene...
Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。 Lucene是一个高性能、可伸缩的信息搜索(IR)库。 Information Retrieval (IR) library.它使你可以为你的应用程序添加索引和搜索能力。 Lucene...
1. **Lucene简介** - Lucene是一个开源的全文搜索引擎库,能够帮助开发者构建应用程序内的搜索功能。 - Lucene的核心能力在于文档索引和查询,它提供了强大的API来实现高效的文档检索。 2. **XML简介** - XML...
1. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 2. 全文检索的实现:Luene全文索引和数据库索引的比较 3. 中文切分词机制简介:基于词库和自动切分词算法的比较 4. 具体的安装和使用简介:系统结构...
#### 一、Lucene简介 - **书籍概述**:“Lucene in Action”是一本深入介绍Apache Lucene的书籍,由Otis Gospodnetic和Erik Hatcher共同撰写。该书旨在帮助读者理解和掌握如何使用Java构建高效搜索应用程序的技术...
**一、Lucene简介** Lucene是Apache软件基金会下的Jakarta项目组的一个核心项目,它是一款高性能、可扩展的全文检索引擎库。作为一个开源的Java库,Lucene提供了完整的搜索功能,包括索引、查询、排序等。然而,值得...
Lucene简介** Lucene最初由Doug Cutting创建,现已成为Apache的顶级项目。它提供了一个高效、可扩展的信息检索库,支持索引和搜索大量文本数据。Lucene不仅处理文本,还可以处理其他类型的数据,如图片和视频,但...
1. **Lucene简介** Lucene是Java编写的一个开源全文检索库,由Doug Cutting创建。它提供了索引和搜索大量文本数据的能力,包括文档、网页和其他类型的数据。Lucene包含了分词器(Tokenizer)、分析器(Analyzer)和...
### 基于Java的全文检索引擎Lucene简介 #### 1. Lucene概述与历史背景 Lucene是一个开源的全文检索引擎库,完全用Java编写。它为开发者提供了构建高性能搜索应用程序的基础组件。尽管Lucene本身不是一个现成的应用...
一、Lucene简介与版本选择 Lucene是一款高性能、全功能的文本搜索引擎库,由Java编写,旨在为应用提供快速、高效的全文检索能力。它不仅仅是一个简单的索引和搜索工具,还提供了丰富的查询语言、分词器和其他高级...