`
chenhua_1984
  • 浏览: 1251196 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

lucene+nutch学习笔记六:lucene使用需要注意的地方

阅读更多

 1尽量减少不必要的存储。

  基本的办法是在添加特定的文档时,使用不存储原始内容的Store.NO,或则压缩存储Store.COMPRESS

 2不需要检索的内容不要建立索引

 3非格式化的文本需要提前转化 ,比如时间货浮点数字。

 4需要整体存方的内容不要分词 ,比如readme.txt

  5注意对索引参数的优化

  主要用下面几个函数:

                           setMergeFactor(),设置合并参数。

           setMaxbufferedDocs(); 设置最大文档个数。

           setMaxFieldLength();限制域索引的个数。

           setMaxBufferedDeleteTerms();设置最大内存删除项数。

 

 6合理选择使用磁盘索引还是内存索引。 下面是一个使用内存索引的例子

package chapter5;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Date;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.RAMDirectory;

public class LuceneIndexCombine {
	

	private static String dest_Index_Path = "D:\\workshop\\TextIndex";
	private static String text_File_Path = "D:\\largeData\\xx.txt";
	public static void main(String[] args) throws IOException{
		Date start=new Date();
		
		try {
			File file=new File(text_File_Path);
			FileReader reader=new FileReader(file);
			
			Directory dir=FSDirectory.getDirectory(dest_Index_Path);
			Directory ramdir=new RAMDirectory();
			
			Analyzer analyzer=new SimpleAnalyzer();

			IndexWriter index=new IndexWriter(dir,analyzer,true);
			IndexWriter ramIndex=new IndexWriter(ramdir,analyzer,true);
			
			Document document=new Document();
			
			Field name=new Field("path",file.getName(),Field.Store.YES,Field.Index.UN_TOKENIZED);
			document.add(name);
			
			Field content=new Field("content",reader);
			document.add(content);
			
			ramIndex.addDocument(document);
			ramIndex.close();
			
			index.addIndexes(new Directory[]{ramdir});
			index.optimize();
			index.close();
			Date end=new Date();
			long tm_index=end.getTime()-start.getTime();
			System.out.println("Total Time:(ms)");
			System.out.println(tm_index);
			
			IndexReader ramIndexReader=IndexReader.open(ramdir);
			System.out.println("Ram Index Reader doc nums:"+ramIndexReader.maxDoc());
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}
分享到:
评论

相关推荐

    lucene2.4+nutch学习笔记三:lucene 在多个文本文档里找出包含一些关键字的文档

    《Lucene 2.4与Nutch学习笔记:在多文档中搜索关键词》 Lucene是一个高性能、全文检索库,而Nutch则是一个开源的网络爬虫项目,两者结合使用,能够实现对大量文本文档的高效搜索和索引。这篇学习笔记主要探讨如何...

    基于lucene和nutch的开源搜索引擎资料集合

    Lucene+Nutch源码.rar Lucene学习笔记.doc nutch_tutorial.pdf nutch二次开发总结.txt nutch入门.pdf nutch入门学习.pdf Nutch全文搜索学习笔记.doc Yahoo的Hadoop教程.doc [硕士论文]_基于Lucene的Web搜索引擎实现....

    Nutch 0.8笔记NUTCHNUTCH

    由于 Nutch 的 lucene 索引仅索引不存储原文,所以在查询时需要根据 segment 信息获取页面内容。 总之,Nutch 0.8 是一个强大的搜索引擎框架,利用 Hadoop 提供了分布式爬取和索引能力。通过理解其核心组件、目录...

    Nutch全文搜索学习笔记

    ### Nutch全文搜索学习笔记 #### 一、Nutch安装与配置 **1. Linux环境下的JDK安装** 为了能够顺利地安装并运行Nutch,首先确保系统中已安装Java Development Kit (JDK) 并且正确配置了`JAVA_HOME`环境变量。如果...

    Lucene学习笔记

    这个学习笔记主要涵盖了Lucene的基本概念,包括索引、文档、域和项,以及安装配置和索引的基本过程。 1. **基本概念** - **索引(Index)**:索引是Lucene的核心,它是由一系列文档组成的。每个索引包含了对文档...

    lucene笔记

    **Lucene笔记** Lucene是Apache软件基金会的一个开放源代码项目,它是一个全文搜索引擎库,提供了文本检索和分析的核心工具。作为一个高性能、可扩展的信息检索库,Lucene被广泛应用于各种搜索应用,如网站搜索、...

    Hadoop数据分析平台学习笔记

    ### Hadoop数据分析平台学习笔记 #### 一、Hadoop概述 **Hadoop**是一个开源软件框架,用于分布式存储和处理大型数据集。它的设计灵感来源于Google的论文,其中包括Google文件系统(GFS)和MapReduce计算模型。...

    Hadoop学习笔记

    【Hadoop学习笔记】 Hadoop 是一个开源框架,主要用于处理和存储大数据。它源自于解决互联网公司面临的海量数据处理问题,特别是Google发布的三篇技术论文,即GFS(Google File System)、MapReduce以及BigTable。...

    Hadoop阶段初识学习笔记

    Doug Cutting是著名的开源搜索技术倡导者和创造者,他之前还创立了Lucene和Nutch等项目。 - **命名由来**:Hadoop这个名字来源于Cutting的孩子给一头玩具大象起的名字,它是一个非正式的名称,简单易记,没有特殊...

    hadoop笔记2.pdf

    例如,在安装和配置Hadoop集群时,需要使用Linux命令进行环境设置,以及编写shell脚本来自动化管理任务。 在搭建Hadoop大数据平台时,通常会用到CentOS这个稳定的操作系统。在新建CentOS7虚拟机时,需要注意配置根...

    ElasticSearch笔记

    随着需求的增长,Cutting与Mike Cafarella合作,开发了Nutch,一个基于Lucene的开源搜索引擎项目,旨在提供类似Google的全网搜索功能。随着互联网的爆炸式增长,数据量激增,Google的GFS(Google File System)和...

Global site tag (gtag.js) - Google Analytics