Lucene包结构
1、org.apache.lucene.analysis 对需要建立索引的文本进行分词、过滤等操作, 语言分析器,
主要用于的切词Analyzer 是一个抽象类,管理对文本内容的切分词规则。
2、org.apache.lucene.analysis.standard 是标准分析器
3、org.apache.lucene.document 提供对Document 和Field 的各种操作的支持。索引存储时的
文档结构管理,类似于关系型数据库的表结构。Document 相对于关系型数据库的记录对象,
Field 主要负责字段的管理。
4、org.apache.lucene.index 是最重要的包,用于向Lucene 提供建立索引时各种操作的支持。
索引管理,包括索引建立、删除等。索引包是整个系统核心,全文检索的根本就是为每个切
出来的词建索引,查询时就只需要遍历索引,而不需要去正文中遍历,从而极大的提高检索
效率。
5、org.apache.lucene.queryParser 提供检索时的分析支持。查询分析器,实现查询关键词间的
运算,如与、或、非等。
6、org.apache.lucene.search 负责检索。检索管理,根据查询条件,检索得到结果。
7、org.apache.lucene.store 提供对索引存储的支持。数据存储管理,主要包括一些底层的I/0
操作。
8、org.apache.lucene.util 提供一些常用工具类和常量类的支持
原理和工作方式
Lucene是一个全文搜索框架,而不是应用产品,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。
已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有:Jive:WEB论坛系统;Eyebrows:邮件列表HTML归档/浏览/查询系;Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene;apache软件基金会的网站使用了Lucene作为全文检索的引擎;IBM的开源软件eclipse的2.1版本中也采用了Lucene作为帮助子系统的全文索引引擎;IBM的商业软件Web Sphere中也采用了Lucene。
Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。Lucene是一个高性能、可伸缩的信息搜索(IR)库。它使你可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的成熟的、免费的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于在Apache软件许可 [ASF, License]。同样,Lucene是当前与近几年内非常流行的免费的Java信息搜索(IR)库。
lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源。
写入流程:源字符串首先经过analyzer处理,包括:分词,分成一个个单词;去除stopword(可选)。将源中需要的信息加入Document的各个Field中,并把需要索引的Field索引起来,把需要存储的Field存储起来。 将索引写入存储器,存储器可以是内存或磁盘。
读出流程:用户提供搜索关键词,经过analyzer处理。对处理后的关键词搜索索引找出对应的Document。用户根据需要从找到的Document中提取需要的Field。
索引过程:从命令行读取文件名(多个),将文件分路径(path字段)和内容(body字段)2个字段进行存储,并对内容进行全文索引:索引的单位是Document对象,每个Document对象包含多个字段Field对象,针对不同的字段属性和数据输出的需求,对字段还可以选择不同的索引/存储字段规则。
分享到:
相关推荐
### Lucene基础知识总结 #### 一、Lucene简介与核心概念 **Lucene**是一款高性能、全文搜索引擎库,由Java语言编写。它提供了一套完整的文本索引与搜索功能,被广泛应用于各种需要进行高效文本搜索的应用场景之中...
这份PPT可能包含对Lucene基础知识的快速概览,如Lucene的主要特点、基本用法,以及适合初学者的示例代码。它可能以简洁易懂的方式解释Lucene的关键概念,对于快速入门Lucene是非常有价值的资源。 总的来说,这个...
1. **Lucene基础知识**:介绍Lucene的基本概念,如文档、字段、术语、倒排索引和查询解析,以及如何创建一个基本的Lucene应用。 2. **索引构建**:涵盖如何将结构化和非结构化数据转化为可搜索的索引,包括分词器的...
Lucene基础知识** Lucene首先需要理解的是它的核心概念,包括文档(Document)、字段(Field)、术语(Term)和倒排索引(Inverted Index)。每个文档由多个字段组成,字段内包含文本内容。Lucene通过分析这些文本...
1. **Lucene基础知识**:Lucene的核心概念包括文档、字段、术语和倒排索引。文档是存储信息的基本单元,字段是文档的组成部分,而术语是经过分词后的单词。倒排索引是Lucene实现高效搜索的关键,它将每个术语与包含...
### Lucene基础知识 1. **索引构建**:Lucene的核心功能是创建索引。它将非结构化的文本数据(如网页内容)转换为结构化的、可搜索的表示形式。索引过程包括分词(Tokenization)、词干提取(Stemming)、停用词...
### Lucene基础知识详解 #### 一、Lucene简介 Lucene是一个高性能、全功能的文本搜索引擎库,由Java编写而成。它提供了构建全文检索应用程序所需的完整功能,包括文本索引和搜索的能力。Lucene的核心是索引和搜索...
Lucene基础知识** Lucene的核心功能包括文本分析、索引构建和查询解析。它首先对输入的文档进行分词,然后将这些词语转换为倒排索引,便于快速查找。倒排索引是一种数据结构,它允许快速定位到包含特定词语的文档。...
一、LUCENE基础知识 LUCENE的核心概念主要包括文档(Document)、字段(Field)、索引(Index)和查询(Query)。文档是信息的基本单位,可以包含多个字段,如标题、内容等;字段则定义了文档的结构,每个字段可以...
### 一、Lucene基础知识 1. **全文检索**: Lucene的主要功能是实现文本的全文检索。它能够快速地查找和排序文档中的关键词,支持模糊搜索和布尔查询。 2. **索引构建**: Lucene通过分析文本并创建倒排索引来实现...
虽然这本书出版时间较早,但仍然是学习Lucene基础知识的重要资源之一。作者Otis Gospodnetic与Erik Hatcher都是Lucene社区的核心贡献者,他们在本书中提供了深入浅出的讲解和实用案例。 #### 二、Lucene简介 1. **...
#### 二、Lucene基础知识 **1. 了解Lucene** - **信息检索术语介绍**:本书首先引入了一些基本的信息检索术语,如索引(Index)、文档(Document)、字段(Field)等,帮助读者快速理解Lucene的工作原理。 - **现代搜索...
"lucene基础jar包"指的是包含Lucene核心组件的基础Java档案(JAR)文件集合,这些文件是构建基于Lucene的搜索应用所必需的。 Lucene 的核心功能包括: 1. **索引创建**:Lucene 提供了对文本数据进行高效索引的...
综上所述,《Lucene in Action》第二版不仅是一本全面介绍Lucene基础知识和技术细节的书籍,还包含了大量实用的案例研究和实践经验分享,对于希望深入了解和运用Lucene进行搜索系统开发的读者来说,是一本非常有价值...
1. **Lucene基础知识**:介绍Lucene的基本概念,如索引、查询解析、评分机制和文档存储。读者将了解到如何创建、更新和删除索引,以及如何设计高效的查询策略。 2. **索引构建与优化**:详述如何有效地构建和优化...
### Lucene基础知识与应用 #### 一、Lucene概述 Lucene是一款高性能、全功能的文本搜索引擎库,它为开发者提供了构建全文检索应用程序所需的工具。Lucene是用Java语言编写的,因此可以轻松地集成到Java应用程序中...
一、Lucene基础知识 Lucene的核心功能包括文档的索引和搜索。它将文本数据转换为倒排索引,使得对关键词的搜索变得快速。在Lucene 2.4中,主要包含以下组件: 1. **Analyzer**:负责文本分词,是语言处理的关键...
**Lucene基础知识** 1. **安装与引入**: 在Java项目中使用Lucene,首先需要下载并添加Lucene的jar包到项目的类路径中,或者使用Maven或Gradle等构建工具进行依赖管理。 2. **索引文档**: 创建索引是Lucene的核心...