2、构建索引

原创 2012年03月28日 23:23:52

索引过程

主要操作步骤:

1、将原始文档转换成文本

2、分析文本

3、将分析好的文本保存至索引中


基本索引demo

 package com.lucene;

import java.io.IOException;

import org.apache.lucene.analysis.WhitespaceAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.junit.Test;

public class IndexingTest {
	private Directory directory;
	private IndexWriter writer;

	@Test
	public void creasteIndex() throws  Exception {
		directory = new RAMDirectory();
		try {
			writer = getWriter();
			Document doc = new Document();
			doc.add(new Field("str", "hello,Wrold!", Field.Store.YES,
					Field.Index.ANALYZED));
			writer.addDocument(doc);
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			writer.close();
		}
	}
	@Test
	public  void IndexReader() throws Exception{
		creasteIndex();
		IndexReader reader=IndexReader.open(directory);
		System.out.println("文档数:"+reader.maxDoc());
		reader.clone();
	}
	@SuppressWarnings("deprecation")
	private IndexWriter getWriter() throws IOException {
		return new IndexWriter(directory, new WhitespaceAnalyzer(),
				IndexWriter.MaxFieldLength.UNLIMITED);
	}
	
}


说明

1、建立新的RAMDirectory对象用来存放索引。
2、在Directory对象上创建IndexWriter对象。
3、创建 Document对象和Fields对象,然后将Document对象加入索引。
IndexWriter三个变量说明: 
1、Directory类,索引对象储存于该类。
2、分析器,被用来索引语汇单元化的域。
3、MaxFieldLength.UNLIMITED,该变量是必要的,它指示IndexWriter索引文档中所有的语汇单元。
NOTE  
IndexWriter类初始化方法并不显示包含索引是否已创建的布尔型,它在初始化时会首先检查传入的Directory类是否已包含索引。如果索引存在,IndexWriter类则在该索引上追加内容,否则后者将向Directory类写入新创建的索引。





相关文章推荐

Lucene读书笔记——2. 构建索引

Lucene如何对搜索内容进行建模 文档和域 文档是Lucene索引和搜索的原子单位。文档为包含一个或多个域的容器,而域则依次包含"真正的"被搜索内容。每个域都有一个标识名称,该名称为一个文本...

J2SE6.0英文参考文档-带索引

  • 2013年10月30日 19:35
  • 5.78MB
  • 下载

lucene学习记录(2) - 实时索引,中文分词

实时索引 在lucene中, Directory和IndexWriter都是线程安全的, IndexReader也是 但reader不能实时反应writer的修改, 必须重新打开reader才可以 目...
  • Sidyhe
  • Sidyhe
  • 2016年07月03日 23:34
  • 1057

增量索引2

  • 2008年01月03日 18:33
  • 8KB
  • 下载

DB2分区表创建及分区索引的创建

一直用oracle数据库,近期刚接触

疯狂android有目录索引2

  • 2012年03月29日 23:41
  • 55MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2、构建索引
举报原因:
原因补充:

(最多只允许输入30个字)