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类写入新创建的索引。





信息检索之索引构建

1、主要内容:     ①、与索引构建相关的计算机硬件的基本知识;     ②、面向静态文档记得高效单击索引算法---基于块的排序索引构建算法;     ③、内存是单遍扫描索引构建算法;     ④、...
  • a123456ei
  • a123456ei
  • 2013年12月11日 20:12
  • 2967

倒排索引构建算法BSBI和SPIMI

参考文献: http://www.cnblogs.com/fly1988happy/archive/2012/04/01/2429000.html http://blog.csdn.net/v...
  • Androidlushangderen
  • Androidlushangderen
  • 2015年04月05日 18:50
  • 2752

倒排索引构建算法BSBI和SPIMI

参考文献: http://www.cnblogs.com/fly1988happy/archive/2012/04/01/2429000.html http://blog.csdn.n...
  • qq_26562641
  • qq_26562641
  • 2015年12月17日 16:35
  • 1162

Python 倒排索引

倒排索引 倒排索引(Inverted index),也常被称为反向索引,是一种索引方法,用来存储某个单词存在于哪些文档之中。是信息检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这...
  • u012605514
  • u012605514
  • 2014年12月28日 11:47
  • 2499

索引的建立过程学习总结

索引基础 了解几个基本概念:倒排索引,单词词典,倒排列表,tf,df等 知道索引建立的大概流程,当拿到一篇文章(单字段),需要进行分词,记录一些信息,组成倒排索引.写入到磁盘中. ...
  • sqh201030412
  • sqh201030412
  • 2016年10月26日 20:05
  • 739

Lucene系列 - 索引(六) - 创建本地搜索的索引

整理记录了在Lucene 4版本中的遍历读取本地文件夹数据,并创建索引的过程。package com.gwu.lucene.tools;import java.io.File; import java...
  • u011389474
  • u011389474
  • 2017年04月06日 16:54
  • 547

Android 地区快速索引

直接上效果图,先有个直观感受! 功能主要就是点击右边的字母索引,就可以跳到相应字母开头的地区列表并置顶。我们主要工作是自定义右边的字母索引这个View。下面罗列一下相关知识点,后面直接贴代码。 ...
  • zxc123e
  • zxc123e
  • 2017年01月24日 11:00
  • 418

使用Hadoop 实现文档倒排索引

文档倒排索引主要是统计每个单词在各个文档中出现的频数,因此要以单词为key,value为文档以及该单词在此文档频数,即输出数据的格式形如:       :表示word1这个单词在doc1文档中出...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2015年04月16日 16:46
  • 1595

android 索引的实现

一直想着做一个索引,毕竟索引也是常用的比如城市选择、通讯录什么的。所以昨天就写了一个,今天在这里贴下代码,以后肯定用得到,废话不多说,操起键盘就是干。由于列表用到了我自己封装的RecyclerView...
  • QLY521520
  • QLY521520
  • 2016年09月23日 15:58
  • 159

Lucene索引创建过程

一,Lucene建索引API二,创建IndexWriter三,创建Document四,添加Document 1  Lucene使用场景2  重要的几个基础类 2.1  Docu...
  • chenqiang_99
  • chenqiang_99
  • 2015年09月17日 00:09
  • 478
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2、构建索引
举报原因:
原因补充:

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