`

lucene第一天(索引index)

阅读更多

Lucene 索引(index),document,field

 

document ----- 一行记录

field  ----------- 一个字段

index----------- 一张表

 

package com.lucene;

import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;

public class Test {

 /**
  * @param args
  * @throws IOException 
  */
 public static void main(String[] args) throws IOException {
  /**
   * 相当于表结构的 一条记录
   * 一个document可以和一个物理文件对应起来 
   * 一个document也可以从不同物理文件提取数据源
   * document甚至不使用物理文件来构建一个document 一段字符串,链接,都可以作为数据源
   */
  
  Document bookdoc=new Document();
  /**
   * Field 数据源, 相当于一条表结构的一个字段数据
   * 有3个重要属性: 
   * 是否存储:是否把内容存放在索引中,如果查询结果不需要显示,就不需要存储
   * 是否索引:是否需要搜索的意思,一般来说 要分词 就必须索引,要索引就不一定要分词
   * 是否分词:是否需要 按照 某个设定的分词器来进行分词搜索。
   * Field 有2个内部类  
   * 1 Store : 表示Field 的存储属性(静态属性)
   *  1.1 COMORESS 压缩存储  
   *  1.2 YES  存储
   *  1.3 NO  不存储
   * 2 Index : 表示Field 的索引属性(静态属性)
   *  2.1 NO 不索引: 
   *  2.2 TOKENZED 被分词后索引
   *  2.3 UN_TOKENZED 不分词索引
   *  2.4 NO_NORMS 不使用Analyzer来索引Field
   */
  
  //存储且分词索引
  Field bookname=new Field("bookname","Java编程思想",Field.Store.YES,Field.Index.TOKENIZED);
  //存储不分词索引
  Field author=new Field("author","wwwlike",Field.Store.YES,Field.Index.UN_TOKENIZED);
  
  //不存储,分词索引
  Field bookabstract=new Field("bookabstract","java是一门编程语言,已经有10多年的发展历史了",Field.Store.NO,Field.Index.TOKENIZED);
  
  
  //把所有的field加入到Document中
  bookdoc.add(bookname);
  bookdoc.add(bookabstract);
  bookdoc.add(author);
  
  /**
   * IndexWriter 主要作用是对缩影进行创建,添加Document,合并何种索引段,以及控制索引相关的方方面面。它
   * 是Lucene的索引的主要操作者。3个构造函数:
   *  public IndexWriter(String path,Analyzer a,boolean create)
   *  public IndexWriter(File path,Analyzer a,boolean create)
   *  public IndexWriter(Directory d,Analyzer a,boolean create)
   *  其中第3个参数是说:是否在第一个参数指定的路径下重新建立索引
   */
  
  try
  {
   //注意文件夹路径的标识方式
  IndexWriter writer=new IndexWriter("d:\\aaa", new StandardAnalyzer(), true);
  //向索引添加文档
  writer.addDocument(bookdoc);
  
    //优化   
     writer.optimize();   
  //一定要close 关闭索引器 关闭各种流才能最终完成索引的建立
  writer.close();
  }catch (Exception e) {
   e.printStackTrace();
  }
  
  //writer.setMaxFieldLength(int maxFieldLength) 设置最大存放field的数量 默认10000
  }

} 

 

 

分享到:
评论

相关推荐

    基于lucene技术的增量索引

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

    lucene 对 xml建立索引

    ### Lucene对XML文档建立索引的技术解析与实践 #### 一、引言 随着互联网技术的迅猛发展,非结构化数据(如XML文档)在企业和组织中的应用日益广泛。如何高效地处理这些非结构化的数据,特别是进行快速检索成为了一...

    Lucene3.0创建索引

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

    Lucene索引器实例

    - **索引(Index)**:索引是Lucene对文档进行处理后生成的数据结构,用于快速查找满足特定查询条件的文档。 - **分词(Tokenization)**:将文档内容分割成独立的词语,称为“术语”或“Token”。 - **分析器...

    Lucene之删除索引

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

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

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

    Lucene结合Sql建立索引Demo源码.rar

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    lucene.net 2.9.2 实现索引生成,修改,查询,删除实例

    在Lucene.NET中,我们通常会定义一个文档类,包含需要索引的字段。例如: ```csharp public class DocumentModel { [Field(Store = Store.YES, Analyze = true)] public string Title { get; set; } [Field...

    Lucene5学习之增量索引(Zoie)

    当新的数据到来时,Index Provider会生成一个新的索引版本,并将这个版本推送给Index User,而旧的索引版本则被保留,以便在新版本不稳定时回滚。这种设计使得系统的可用性得到了极大的提升。 增量索引的关键在于...

    Lucene 索引的简单使用

    - **分词器(Tokenizer)**:分词器将输入的文本分解为一系列的词语,这是建立索引的第一步。 - **分析器(Analyzer)**:分析器结合了分词器、过滤器等,负责对文本进行预处理,如去除停用词、词形还原等。 ### 2...

    Lucene结合Sql建立索引

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    lucene-索引(index).pdf

    标题与描述概述的知识点主要围绕着Lucene索引的核心概念,包括索引的基本定义、反向索引(倒排索引)的工作原理以及Lucene如何实现其独特的索引文件格式。下面将对这些知识点进行详细阐述。 ### 索引概念 索引是一...

    lucene 索引 查看 工具

    2. **Luke 工具**:Luke 是一个用于查看和分析 Lucene 索引的桌面应用程序,它的全名是 Lucene Index Toolbox。Luke 可以显示索引的详细信息,包括字段、文档数量、词项频率、术语字典、文档分词等,是开发者调试和...

    Lucene 删除 合并索引

    Lucene 删除 合并索引,可以指定几个索引文件合并成一个索引文件。自己写的,有很多不足之处请多指教

    Lucene索引和查询

    这些词项构成了倒排索引(Inverted Index),这是一种数据结构,它允许我们快速找到包含特定词项的所有文档。具体步骤包括: - 分词(Tokenization):通过分词器(Tokenizer)将文本切分成词项。 - 词项处理(Term...

    最简单的Lucene建立、搜索索引的方法

    2. **创建索引目录**:Lucene的索引存储在文件系统中的一个目录下,所以你需要先创建一个文件夹作为索引的存储位置。 3. **配置Analyzer**:Analyzer是Lucene中用于分词的组件,可以根据需求选择不同的Analyzer。...

    深入 Lucene 索引机制

    这些Term对象会存储在一个倒排索引(Inverted Index)中,这是Lucene的核心数据结构。 3. 倒排索引构建:倒排索引将词项与包含该词项的文档列表关联起来。对于每个Term,Lucene会创建一个Posting List,记录每个...

    Lucene结合Sql建立索引Demo源码

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    lucene并行索引

    Lucene的核心是基于倒排索引(Inverted Index)的数据结构,这种结构非常适合于文档检索。倒排索引的基本思想是为每个文档中的每个词建立索引,并记录该词出现在哪些文档中及其位置信息。 - **倒排索引**:对于每个...

    lucene索引查看工具

    兄弟们!...一款可以查看Lucene分词后在索引的排名以及是否有无该词,很多时候用于查看有无需要屏蔽的词,能查到的话,delete,呵呵...查看词在overview中输入排名数字,show top term,搜索词在search中

Global site tag (gtag.js) - Google Analytics