`
zhh9106
  • 浏览: 58267 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

lucene4.3—索引的建立

阅读更多

很早就对lucene这个基于java的apache开源全文搜索框架有过初步的学习了,但是由于学习等各种原因,迟迟都没有发表一些博文,今天就贴出一些博主的一些学习笔记,希望对lucene有兴趣的博友指点指点。

 

对于学习lucene这个全文搜索框架,第一步,要学会建立起索引:

package lucene;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import org.apache.lucene.analysis.Analyzer;
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;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;

public class Lucene {

	/**
	 * 建立索引
	 * @throws IOException 
	 */
	
	public void index() throws IOException 
	{
		//1、创建directory
		Directory directory=new RAMDirectory(); //创建内存索引
				
		Directory directory2=FSDirectory.open(new File("E:/lucene/index01")); //索引创建于硬盘中
				
		//2、创建indexWriter
				
		//创建IndexWriterConfig,从中文名可以看出,这个是IndexWriter的配置类, 有两个参数,第一个是版本号,第二个是分词器
		IndexWriterConfig iwc =new IndexWriterConfig(Version.LUCENE_43,new StandardAnalyzer(Version.LUCENE_43));
				
		IndexWriter iw=new IndexWriter(directory2,iwc);
				
		//3、创建document对象
		
		Document document;
				
		//4、为document对象添加Field域
				
		//创建文件夹,文件夹里面有三个文档
		File f=new File("E:/lucene/luceneexamplefile");
				
		//遍历文件夹里面的三个文档,为每个文档添加索引域,即建立当前这篇文档的索引
		for(File file:f.listFiles())
		{
			document= new Document();
			
			document.add(new Field("content",new FileReader(file)));
			document.add(new Field("filename",file.getName(),Field.Store.YES,Field.Index.NOT_ANALYZED));
			document.add(new Field("filepath",file.getAbsolutePath(),Field.Store.YES,Field.Index.NOT_ANALYZED));
			
			
			//5、通过indexWriter将文档添加到索引中
			
			//因为iw是indexWriter,它里面封装了索引创建的目标地方和分词器等等的配置,
			//而且提供了一个封装方法,只要调用这个方法,把这篇文档传进去,即可建立起当前文档的索引
			iw.addDocument(document);
			
		}
				
		//类似于数据库一样,用完要关闭
		iw.close();
		
	}
	
}

 

   上面代码是建立索引的步骤以及代码实现,下面写个测试类:

public class LuceneTest {

	
	@Test
	public void testIndex() throws IOException
	{
		
		Lucene lucene=new Lucene();
		
		lucene.index();
	}
	
}

 

 

这样就可以生成索引了,执行结果如下:


 就这样,索引就建立成功了。

 

  • 大小: 14.6 KB
1
2
分享到:
评论
1 楼 don141421 2014-03-25  
和3.x差不多

相关推荐

    lucene4.3源码

    Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会...

    lucene4.10.3

    Lucene采用倒排索引(Inverted Index)结构,为每个唯一的术语建立一个术语表,记录该术语在哪些文档中出现以及出现的位置信息,以加速查询速度。 2.3 索引优化 在4.10.3版本中,Lucene对索引过程进行了优化,包括...

    Lucene+原理与代码分析完整版

    在建立索引时,Analyzer会进行分词,并计算每个词在文档中的频率,这些信息被保存在倒排索引中,用于后续的搜索和排名。 3.3 压缩存储 为了节省磁盘空间,Lucene采用了高效的压缩技术来存储索引,如变长编码和位图...

    Lucene 3.6 学习笔记

    ### 第二章 索引建立 #### 2.1 创建 Directory 和 Writer - `Directory`用于指定索引的存储位置,如磁盘或内存。 - `IndexWriter`创建时需传入`Directory`,用于写入索引。 #### 2.2 创建文档 - `Document`对象...

    java全文搜索lucene-3.0.0-src+lib.zip

    Lucene的工作流程主要包括索引创建、索引读取和搜索三个阶段: - 创建索引:使用Analyzer处理文档,生成Token流,然后通过IndexWriter写入索引。 - 读取索引:使用IndexReader打开已有的索引文件。 - 搜索:Searcher...

    基于lucene 的简单搜索引擎.rar

    分词器将字段内容划分为一系列的关键词,这是建立索引的第一步。Lucene提供了多种分词器,如标准分词器(StandardTokenizer),适用于大多数语言。 **1.4 索引(Index)** 索引是Lucene的核心,它将文档的内容转换...

    lucene全文检索

    创建索引时,Lucene 会读取文档内容,使用分词器进行分词,并为每个词语建立倒排索引。倒排索引将词语映射到包含该词语的文档列表,便于快速查找包含特定词语的文档。 #### 2.2 更新索引(Updating) 当文档发生...

    利用开源工具搭建小型搜索引擎

    **4.3 LUCENE中索引使用** - **5.1 建立索引的一个简单例子**: 提供一个简单的示例来演示如何使用Lucene创建索引。 - **5.2 理解索引中的核心类**: 解释Lucene中用于索引操作的主要类的作用。 - **5.2.1 ...

    一个专业搜索公司关于lucene+solar资料(1)

    - 建立索引:利用工具如Lucene建立高效的全文索引。 - 搜索与排名:支持用户查询并返回相关性高的结果。 **1.4 本章小结** - 本章概述了搜索引擎的基本概念和发展历程,并介绍了构建一个简单搜索引擎所需的步骤...

    hibernate-search-4.3.0.zip

    4. **FieldBridge**:桥接对象,用于在ORM实体字段与Lucene文档字段之间建立映射。 5. **索引增强**:通过注解,可以在ORM实体类和属性级别定义索引行为,如@Field、@AnalyzerDef等。 三、配置 在使用Hibernate ...

    基于Lucene的语段模糊匹配中文检索系统设计与实现 (2009年)

    该模型通过对Lucene评分机制的改进,建立了一个新的文档有效性二次判别模型,通过一个多维非线性计算函数来评估搜索结果的相似度,并据此对搜索结果进行排序。 #### 三、系统特点 - **自然语言输入**:用户可以...

    Hibernate Annotations 中文文档

    Hibernate Annotations API 中文文档 前言 1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 2. 实体Bean 2.1. 简介 ...5.1. 使用Lucene为实体建立索引 5.1.1. 注解领域模型 5.1.2. 启用自动索引

    开源企业搜索引擎SOLR的应用教程

    索引过程包括解析文档、提取字段、建立索引等步骤。 - **1.3.2 搜索**:用户通过提交查询请求到Solr,Solr根据请求条件从索引中检索数据并返回结果。 #### 二、Solr的安装与配置 **2.1 在Tomcat下Solr安装** - **...

    Solr3.5开发应用指导

    - **3.2.2 构建索引**:向Solr中添加文档,并建立索引。 - **3.2.3 搜索测试**:编写查询语句,测试索引的有效性。 **3.3 搜索引擎的规划设计** - **3.3.1 定义业务模型**:明确搜索的目标和范围。 - **3.3.2 定制...

    Solr初体验

    总结,Solr 作为强大的全文搜索引擎,提供了一整套解决方案,从数据导入、索引建立到查询优化和集群管理。通过深入了解 Solr 的工作原理和配置技巧,我们可以构建出高效、可靠的搜索系统,满足各种业务场景的需求。...

    高清彩版 自己动手写搜索引擎

    - **4.3 流媒体内容提取**:包括音频流和视频流内容的提取方法。 - **4.4 抓取限制应对方法**:面对反爬虫机制时的应对策略。 - **4.5 本章小结**:总结文档文本内容提取的方法和技术要点。 #### 第5章:自然语言...

    search engine

    - **6.4 优化使用Lucene**:提升索引和查询性能。 - **6.5 查询大容量索引**:处理海量数据的查询需求。 #### 八、用户界面设计与实现 良好的用户界面能够提升用户体验,增加搜索引擎的可用性。 - **7.1 Lucene...

    Solrj 中文教程

    - **3.1.2 SOLR的使用过程说明**:从索引建立到搜索结果呈现的整个流程。 ##### 3.2 一个简单的例子 - **3.2.1 SolrSchema设计**:为示例项目设计一个简单的索引结构。 - **3.2.2 构建索引**:向Solr添加文档以构建...

    orientdb手册

    **4.3 全文索引 (Full Text)** 用于全文搜索的索引,支持复杂的搜索表达式。 **4.4 Lucene 全文索引 (Lucene Full Text)** 利用 Lucene 引擎实现的全文索引。 **4.5 Lucene 空间索引 (Lucene Spatial)** 用于...

Global site tag (gtag.js) - Google Analytics