`
xiaoshan5634
  • 浏览: 74149 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

Lucence基本概念

阅读更多

1.Lucene的Document
Document类似于数据库中的一条数据,Lucene是通过Document来跟各种物理文件或数据库文件通信的。
2.Lucene的Field
Field相当于数据库中一条数据的某个字段,我们可以直接通过FIELD创建一个该类型的对象。
他们直接的调用关系:
Document doc = new Document();

Field f1 = new Field("name1","value1",Field.Store.YES,Field.Index.TOKENIZED);
doc.add(f1);

Field的各个属性:
Store.NO:表示Field不需要存储。
Store.YES:表示Field需要存储。
Store.COMPRESS:表示以压缩的方式来保存field的值。
Index有4个静态属性:
1.Index.NO:表示该Field不需要索引,也就是用户不需要去查找改field的值。
2.Index.TOKENIZED:表示该Field先被分词再索引。
3.Index.UN_TOKENIZED:表示不对该field进行分词,但要对他进行索引,也就是该field会被用户查找。
4.Index.NO_NORMS:表示对该FIELD进行索引,但是不使用analyzer,同时禁止他参加评分,主要是为了减少内存的消耗。
3.Lucene的Term

Term词条,索引将记录分词成一个一个的词条,然后保存在索引中,我们可以使用词条去搜索我们需要的结果。

用户构建完document.那么就要开始建立索引了。采用indexwriter.
例如:
Analyzer luceneAnalyzer = new StandardAnalyzer();
IndexWriter writer = new IndexWriter(file,luceneAnalyzer,true);

他有三个构造函数:
public IndexWriter(String path,Analyzer a,boolean create)
public IndexWriter(File path,Analyzer a,boolean create)
public IndexWriter(Directory path,Analyzer a,boolean create)
这三个构造函数除了第一个参数不一样以后,其他都一样,表示索引的位置。第二个参数是一个ANALYZER对象,主要负责对各种输入数据源进行分析,包括过滤,分词等多种功能。第三个参数是一个BOOLEAN值,含义是:在由第一个参数所指定的路径处,删除原目录的所有内容重新构建索引,或是在其中已经存在的索引上追加新的DOCUMENT.

IndexWriter构建索引的流程:
1.初始化一个分析器对象,作为参数传入到writer中
2.传入建立索引的路径,即用户希望将索引文件存放的地方。
3.为该目录上锁。
4.判断用户希望把该索引目录下的原来的内容删去吗?
如果是:创建新的SEGMENT文件,并写入版本号,修改次数等信息。
如果否:读取原来的SEGMENT文件,读出版本号信息。
5.对象初始化完毕,通过writer.addDocument(doc);开始往指定目录写索引。

注意点:
1.在使用addDocument方法以后,一定要使用IndexWriter的CLOSE方法来关闭索引器,使所有的IO缓存中的数据都写入到磁盘中,关闭各种流。这样才能最终完成索引的创建。
2.限制每个FIELD中的词条数量。
对于建立的索引,有可能将很长的文本段都写入到FIELD中,然后作为索引进行存储,如果存入数据量过大,会抛出OUTOFMEMORY的异常。因此可以调用
public void setMaxFieldLength(int maxFieldLength)
例子:
writer.addDocument(doc);
writer.setMaxFieldLength(100000);
writer.addDocument(doc2);
当调用了该方法以后,LUCENE最多可以为FIELD内的10000个词条建立索引(如果不设置,默认为10000个。)

分享到:
评论

相关推荐

    Lucene的原理完整版pdf

    ### 一、Lucene基本概念 1. **索引**:Lucene首先对文本进行索引,将文本内容转换为一系列可搜索的结构。索引过程包括分词(Tokenization)、词干提取(Stemming)、停用词处理(Stop Word Removal)等步骤。 2. *...

    lucene全文搜素实例 java lucene 实例

    ### 一、Lucene 基本概念 1. **索引(Index)**:Lucene 的核心功能是建立索引,它将非结构化的文本数据转换成可供快速搜索的数据结构。索引过程包括分词(Tokenization)、词干提取(Stemming)、停用词过滤...

    lucene部分案例的源代码

    一、Lucene基本概念 Lucene是一个开源的Java库,它提供了一个强大的信息检索API,支持索引和搜索大量文本数据。其核心功能包括文档索引、查询解析、评分机制以及结果排序等。通过Lucene,开发者可以快速地构建出...

    lucene4.4 Demo事例

    1. **Lucene基本概念** - **索引**: Lucene首先需要创建索引,将文本数据转换为可搜索的结构。索引过程包括分析、分词和倒排索引等步骤。 - **分析器**: 分析器负责将输入文本拆分成有意义的单位,即术语(tokens...

    Lucene3.1使用教程

    ### 一、Lucene基本概念 1. **索引(Index)**:Lucene首先将数据转换成索引,这个过程类似于传统书籍的目录。索引包含文档的关键词及其位置信息,使得快速查找和排序变得可能。 2. **文档(Document)**:在...

    Lucene 索引的简单使用

    Lucene基本概念 - **文档(Document)**:在Lucene中,一个文档代表你要索引的信息单元,它可以包含多个字段(Field)。 - **字段(Field)**:字段是文档的组成部分,每个字段都有特定的类型(如文本、日期等)...

    Lucene视频教程_讲解部分源码

    1. **Lucene基本概念**:Lucene的核心概念包括文档(Document)、字段(Field)、索引(Index)和查询(Query)。文档是由一系列字段组成的,每个字段有特定的类型(如文本、数字等)。索引是Lucene对这些文档进行...

    Lucene 概述视频详解

    **一、Lucene基本概念** 1. **索引**:在Lucene中,数据不是直接存储的,而是被转换为一种叫做索引的数据结构。索引是经过分析和分词后的文档内容,使得搜索过程可以快速定位到相关的文档。 2. **文档**:在Lucene...

    Lucene.In.Action.2nd.Edition

    1. **Lucene基本概念**:了解Lucene的基本架构,如文档、字段、术语(token)、倒排索引等。这些概念构成了Lucene搜索引擎的基础。 2. **索引创建**:学习如何将文本数据转换为可搜索的Lucene索引,包括分词、分析...

    lucene站内搜索

    ### 一、Lucene基本概念 1. **索引(Index)**: Lucene首先将文档内容转换为可搜索的结构化数据,即索引。索引是经过特殊处理的数据结构,允许快速定位到包含特定查询词的文档。 2. **分词(Tokenization)**: ...

    lucene for java 简单demo

    Lucene基本概念** - **索引(Indexing)**:Lucene首先对文档进行分析和处理,将其转化为结构化的索引数据。这个过程包括分词(Tokenization)、去除停用词(Stopword Removal)、词干提取(Stemming)等。 - **...

    lucene-7.4.0jar包

    1. **Lucene基本概念** - **全文检索**:Lucene的核心功能是进行全文检索,它能将非结构化的文本数据转换成可搜索的索引。 - **倒排索引**:Lucene采用倒排索引技术,将文档中的词汇与文档ID关联,提高了查询速度...

    lucene代码

    一、Lucene基本概念 1. 文档(Document):在Lucene中,文档是信息的基本单位,它由多个字段(Field)组成,每个字段有对应的名称和内容。例如,一个网页可以被看作一个文档,其中的标题、正文、URL等可以作为不同...

    Lucene与数据库结合示例(加双关键字高亮)

    1. **Lucene基本概念**:理解Lucene的索引结构,如倒排索引,以及其如何提高搜索效率。 2. **数据库集成**:学习如何将MySQL中的数据导入到Lucene的索引中,可能涉及JDBC连接、SQL查询等知识。 3. **索引创建**:...

    lucene 实现类似百度搜索

    ### 一、Lucene 基本概念 1. **索引(Index)**:搜索引擎的核心是索引,类似于书籍的目录。Lucene 把文档内容转换成倒排索引,使得快速查找匹配的文档变得可能。 2. **文档(Document)**:在 Lucene 中,每个文档...

    Lucene-2.3.1 源代码阅读学习

    1. **Lucene基本概念** - **索引**:Lucene的核心是构建索引,它将文本数据转换为倒排索引,以便快速查找包含特定词的文档。 - **文档**:在Lucene中,文档是信息的基本单位,可以包含多个字段,每个字段都有特定...

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

    一、Lucene基本概念 1. 文档(Document):在Lucene中,一个文档代表了要索引的信息源,它可以是网页、电子邮件、PDF文档等。文档由多个字段(Field)组成,每个字段具有不同的含义和处理方式。 2. 字段(Field)...

    lucene-5.4.0

    一、Lucene基本概念与架构 1.1 Lucene核心组件:主要包括索引(Index)、文档(Document)、字段(Field)和分词器(Analyzer)。索引是Lucene的核心,它将文本数据转换成可以高效查询的结构;文档是由多个字段组成...

    lucene in action 中文

    1. **Lucene基本概念**:Lucene是一个开源的全文检索库,它提供了索引和搜索功能,可以嵌入到各种Java应用程序中。书中首先会介绍什么是全文检索,以及Lucene如何通过倒排索引实现高效搜索。倒排索引是一种将词与...

    Lucene项目案例

    **一、Lucene基本概念** 1. **索引(Index)**: Lucene首先对文档内容建立索引,类似于图书的目录,以便快速定位到所需信息。索引过程包括分词(Tokenization)、词干提取(Stemming)、停用词处理(Stop Word ...

Global site tag (gtag.js) - Google Analytics