`
BuN_Ny
  • 浏览: 85494 次
  • 来自: 济南
社区版块
存档分类
最新评论

4) 第一章 初识Lucene:理解核心索引类

阅读更多

 

 

1. IndexWriter

    IndexWriter是索引过程的核心组件。这个类用于创建新的索引文件或者打开一个已经存在的索引文件,之后,它负责增加、删除、更新对应文件中的document. 你可以把它理解成这样一个对象:它提供对索引文件的"写"操作,然而你不能通过它进行"读"和"搜索"操作。IndexWriter需要一个空间以存储索引文件,这正是Directory的作用。

 

2. Directory

    Directory类表示Lucene索引文件的位置。这是一个抽象类,它允许其子类按照适合的方式存储索引。Lucene主要提供了两种实现:FSDirectory(基于文件系统)和RAMDirectory(基于内存)。基于内存的策略更快捷,它在应用结束后即销毁索引,通常被用作单元测试。而合理的应用操作系统的IO缓存,可以弱化FSDirectory和RAMDirectory之间的性能差异。

 

3. Analyzer

    文本被索引之前,会被传入Analyzer进行处理。 Analyzer的具体实现类在IndexWriter的构造器中指出。它负责提取需要从文本中被索引的词元,并忽略掉其它不相关的。如果需要索引的内容不是纯文本,首先需要进行转换。Analyzer是个抽象类,然而Lucene为其提供了诸多实现。其中的一些实现负责跳过停词(一些不能用于区分文档的词,如a,an,this,in,又如"的"、"吗");另一些负责处理字母的大小写变化,这样一来,搜索的时候就可以做到大小写不敏感。Analyzer是Lucene的重要组成部分,它不仅被用于简单的输入过滤。当你在应用中使用Lucene时,Analyzer的选择通常是设计之初重要的一环。

 

4. Document

    Document用来代表域(Field)的集合。你可以把它想像成一个实际的文档,诸如一个网页、一封邮件、一个文本文档等。而Document的域(Fields)则是文档的元数据,诸如作者、标题、主题等。

    注意:Lucene只处理两种类型,java.lang.String 和 java.io.Reader. 原始数据的抽取工作需要你自己完成。

 

5. Field

    索引文件中的每个Document都包含了一个或多个Field. 每个Field由名称、对应的值及若干选项组成,这些选项用来精确地控制Lucene以何种方式索引Field中的值。

 

 

 

分享到:
评论
1 楼 zeng1990 2012-05-06  
有什么学习Lucene的好书推荐一下呗!你这个主题的文章是在是写的太好了。

相关推荐

    Lucene:基于Java的全文检索引擎简介

    Lucene是一个基于Java的全文索引工具包。 1. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 2. 全文检索的实现:Luene全文索引和数据库索引的比较 3. 中文切分词机制简介:基于词库和自动切分词算法的...

    基于lucene技术的增量索引

    Lucene首先需要理解的是它的核心概念,包括文档(Document)、字段(Field)、术语(Term)和倒排索引(Inverted Index)。每个文档由多个字段组成,字段内包含文本内容。Lucene通过分析这些文本,将其拆分为术语,...

    lucene 对 xml建立索引

    - Lucene的核心能力在于文档索引和查询,它提供了强大的API来实现高效的文档检索。 2. **XML简介** - XML(Extensible Markup Language,可扩展标记语言)是一种用来标记数据的语言,它定义了用于描述结构化文档...

    lucene:基于Java的全文检索引擎简介

    - **应用接口扩展**:开发者可以扩展Lucene的核心类和接口,以满足特定需求。 #### 6. Lucene的应用与学习价值 Lucene因其高性能和灵活性,在许多应用场景中被广泛使用,包括但不限于: - **Web论坛系统**(如...

    Lucene3.0创建索引

    在Lucene3.0中创建索引是一个关键功能,可以帮助用户快速地检索和管理大量的文本数据。本篇文章将详细介绍如何使用Lucene3.0来创建索引,并通过一个具体的例子来演示整个过程。 #### 一、Lucene3.0简介 Lucene是一...

    精品资料(2021-2022收藏)Lucene:基于Java的全文检索引擎简介.doc

    Lucene的核心目标是简化在各种规模的应用中添加全文检索的能力。 全文检索的实现机制: Lucene的API设计灵活,允许将各种数据源(如文件、数据库记录等)映射到其文档(Document)和字段(Field)的概念中。文档是...

    lucene全文检索简单索引和搜索实例

    3. 索引(Index):索引是Lucene的核心,它将原始文本转化为一种可快速搜索的数据结构。通过分词器(Analyzer),将文本分解成单词(Token),然后构建倒排索引(Inverted Index),使得我们可以高效地查找包含特定...

    深入 Lucene 索引机制

    《深入 Lucene 索引机制》这篇博文主要探讨了Lucene这个全文搜索引擎的核心索引原理,它在信息检索领域有着广泛的应用。Lucene是一个开源的Java库,它提供了高效、可扩展的文本搜索功能。以下是对Lucene索引机制的...

    Lucene 索引的简单使用

    - **多字段索引**:一个文档可以有多个字段被索引,方便针对不同字段进行搜索。 - **模糊搜索**:支持通配符、前缀、短语等查询,如`new WildcardQuery(new Term("title", "Java*"))`。 - **评分和排序**:Lucene...

    面试指南-Lucene:ES篇.md

    ### Lucene与Elasticsearch核心知识点详解 #### 一、倒排索引深入骨髓 **1. 倒排索引的原理及其应用场景** 倒排索引是一种用于快速检索文档的技术,它改变了传统索引从文档指向关键词的方式,转而以关键词指向...

    Lucene索引器实例

    在深入理解Lucene索引器实例之前,我们先要了解Lucene的基本概念。 **1. Lucene的基本组件** - **文档(Document)**:是Lucene处理的基本单位,通常代表数据库中的一条记录或者一个网页。文档包含一系列字段...

    Lucene:基于Java的全文检索引擎简介.rar

    1. **索引(Indexing)**:Lucene首先将非结构化的文本数据转换为倒排索引(Inverted Index),这是一个高效的数据结构,用于快速查找包含特定词汇的文档。索引过程包括分词(Tokenization)、词干提取(Stemming)...

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

    赠送jar包:lucene-core-7.7.0.jar; 赠送原API文档:lucene-core-7.7.0-javadoc.jar; 赠送源代码:lucene-core-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.7.0.pom; 包含翻译后的API文档:lucene...

    lucene包,lucene实现核心代码

    在"lucene包"中,我们可以找到Lucene的核心组件和类,这些类负责索引和搜索文档。以下是Lucene实现的核心知识点: 1. **索引过程**: - `IndexWriter`:这是创建和更新Lucene索引的主要类。通过这个类,你可以将...

    Lucene之删除索引

    在深入探讨Lucene删除索引这一主题之前,我们先来理解一下Lucene的基本概念。Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发。它提供了高性能、可扩展的搜索和索引功能,广泛应用于各种应用程序中,如...

    Lucene 3.0 原理与代码分析PDF

    Lucene学习总结之一:全文检索的基本原理 Lucene学习总结之二:Lucene的总体架构 Lucene学习总结之三:Lucene的索引文件格式(1) ...Lucene学习总结之四:Lucene索引过程分析(4) www.chinaandroid.com

    IKAnalyzer中文分词支持lucene6.5.0版本

    由于林良益先生在2012之后未对IKAnalyzer进行更新,后续lucene分词接口发生变化,导致不可使用,所以此jar包支持lucene6.0以上版本

    官方最新完整版lucene-6.6.0.zip

    《Apache Lucene 6.6.0:全文检索与索引库详解》 Apache Lucene 是一个开源的全文检索库,由Java编写,为开发者提供了强大的...通过深入理解其核心机制和功能,开发者可以更好地利用这一技术,提升应用的搜索体验。

Global site tag (gtag.js) - Google Analytics