`
smallearth
  • 浏览: 37463 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Lucene小练二(还是索引)

 
阅读更多
package org.se.lucene;

//创建索引
import java.io.File;
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.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
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.LockObtainFailedException;
import org.apache.lucene.util.Version;

public class lucene_index {
		private String[] ids={"1","2","3","4","5","6"};
		private String[] emails={"aa@aa.org","cc@cc.org","dd@@dd.org","bb@bb.org","ee@ee.org","ff@ff.org"};
		private String[] contents={"welcometotyu","hellowboy","higirl","howareyou","googluck","badgosh"};
		private int[] attachs={1,2,3,4,5,6};
		private String[] names={"liwu","zhangsan","xiaoqinag","laona","dabao","lisi"};
		private Directory directory=null;
		
		public lucene_index()
		{
			try {
				directory=FSDirectory.open(new File("f:/lucene/index02"));
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		public void quary()
		{
			try {
				IndexReader reader=IndexReader.open(directory);
				System.out.println("numdocs"+reader.numDocs());
				System.out.println("maxDocs"+reader.maxDoc());
			} catch (CorruptIndexException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		
		public void index()
		{
			   IndexWriter writer=null;
			   Document doc=null;
			   try {
				writer =new IndexWriter(directory,new IndexWriterConfig(Version.LUCENE_36, 
						   new StandardAnalyzer(Version.LUCENE_36)));
				for(int i=0;i<ids.length;i++)
				{
					doc=new Document();
			    	doc.add(new Field("id",ids[i],Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));
			    	doc.add(new Field("emails",emails[i],Field.Store.YES,Field.Index.NOT_ANALYZED));
			    	doc.add(new Field("contents",contents[i],Field.Store.YES,Field.Index.ANALYZED));
			    	doc.add(new Field("name",names[i],Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));
			    	writer.addDocument(doc); 
				}
			} catch (CorruptIndexException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (LockObtainFailedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			   finally{
				   if(writer!=null)
				   {
					  try {
						writer.close();
					} catch (CorruptIndexException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}   
				   }
			   }
		}

}
//测试类
package org.se.lucene;

import org.junit.Test;

public class test {

	@Test
	public void testIndex()
	{
		lucene_index l_index=new lucene_index();
		l_index.index();
    }
	@Test
	
	public void testquary()
	{
		lucene_index l_index=new lucene_index();
		l_index.quary();
	}
}


分享到:
评论

相关推荐

    全文索引引擎Lucene简单教程

    ### 全文索引引擎Lucene简单教程 #### Lucene简介 Lucene是一个高性能的、全功能的开源全文搜索引擎库,由Java编写而成。它不是一个完整的应用,而是提供了一个简单的API,允许开发者轻松地集成搜索功能到自己的...

    盘古PanGu4Lucene_V2.3.1.0

    通常,这个过程包括初始化分词器、输入待分词的文本、获取分词结果并将其应用到Lucene.NET的索引和查询操作中。通过这种方式,Lucene.NET可以理解中文文本,建立基于分词结果的索引,并根据用户的中文搜索请求进行...

    lucene je-analysis jar包

    Lucene包含了索引、搜索、分词、排序、高亮、相关性等功能,使得开发者能够快速构建复杂的搜索引擎。 Lucene的核心在于其索引机制。它将文本数据转化为倒排索引,这是一种优化的存储结构,允许快速查找包含特定词汇...

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

    ### Lucene+Solor知识点概述 #### 一、搜索引擎基础理论 **1.1 Google神话** - **起源与发展:** - Google成立于1998年,由Larry Page...- 本章详细介绍了如何使用Lucene创建和管理索引库,包括索引库的设计、创建...

    lucene中文检索

    2. **创建索引**:使用 Lucene API 创建索引,其中最重要的是定义 Analyzer。在创建索引时,使用 IKAnalyzer 作为 Analyzer,以便对中文文本进行分词。例如: ```java Analyzer analyzer = new IKAnalyzer(); ...

    搜索opensearch model索引

    5. **模型索引**:将训练好的模型序列化为二进制格式,并存储到OpenSearch的模型索引中。这样,当需要进行预测时,可以快速检索和加载模型。 6. **在线预测**:用户可以通过OpenSearch的API发送请求,检索模型并...

    引入局部统计识别高频词汇的Lucene中文分词程序src.rar

    标题中的“引入局部统计识别高频词汇的Lucene中文分词程序src.rar”表明这是一个关于使用Lucene进行中文分词的源代码项目,其中融入了局部统计的方法来识别和处理高频词汇。Lucene是一个流行的全文检索库,广泛应用...

    中文分词器(mmseg4j + luncene5.X)源码+jar包

    在Lucene5.x版本中,引入了更高效的倒排索引结构和查询优化策略,增强了对多语言的支持,包括对中文的处理。Lucene允许开发者自定义分词器,这就为mmseg4j与Lucene的结合提供了可能。 **mmseg4j与Lucene5.x整合** ...

    网页处理与去噪-信息检索

    Lucene的核心功能包括文档索引、搜索和排序。在索引阶段,它会解析网页内容,提取关键词,并建立倒排索引。倒排索引是一种高效的数据结构,使得我们可以快速找到包含特定词的文档。在搜索阶段,用户输入查询后,...

    相似图片搜索原理的Java实现源码范例和详细说明(由浅入深,深度解读在资料后半部分)(合集).docx

    首先,读取查询图片的特征向量,然后在Lucene索引中进行搜索,找到与查询向量最接近的图片特征向量。根据选择的距离度量(例如余弦相似度),计算并返回最相似的图片。 6. **优化和扩展**:为了提高效率,可以考虑...

    由弹性搜索和张量流 驱动的反向图像搜索引擎_python

    Elasticsearch是一个基于Lucene的分布式、RESTful搜索和分析引擎,它可以存储和索引大量数据,并且能够在极短的时间内提供快速的搜索结果。在反向图像搜索引擎中,Elasticsearch可能被用来存储这些由TensorFlow生成...

    电力视频大数据分布式检索系统设计与实现.pdf

    最后,系统采用Lucene实现关键帧的索引。Lucene是一个高效的文本搜索引擎库,它能够快速地建立索引,提供快速的全文搜索。通过Lucene,系统不仅能够实现快速的视频检索,还能够支持复杂的查询操作,如关键词搜索、...

    Java采购管理信息系统源码-Resumepedia:申请人跟踪和分类系统

    LUCENE API 使用倒排索引和使用 tf-idf 加权机制的排名检索使查询搜索更快、更有效。 简历的分类是使用朴素贝叶斯分类完成的。 简历根据它们所属的简历类型进行分类,如计算机、管理、律师和杂项。 目前分类和信息...

    MMAnalyzer分词jar包

    Lucene提供了一套完整的文本处理方案,包括索引、搜索、高亮显示等功能,与MMAnalyzer配合可以构建强大的中文信息检索应用。 使用这两个库,开发者可以在自己的Java项目中集成MMAnalyzer,步骤通常包括以下几点: ...

    JAVA技术与人工智能在搜索引擎上的应用_IT168文库.pdf

    Nutch是一款由Java编写的高性能、可扩展的搜索引擎,它利用Lucene库进行索引和搜索。Nutch的设计目标是处理海量网页数据,提供高效、精准的信息检索服务。 Java编程语言因其强大的跨平台能力(可移植性)而被广泛...

    study_jh.rar

    Lucene支持倒排索引、布尔查询、模糊查询等多种高级搜索特性。学习Lucene有助于提升应用程序的搜索体验,特别是对于处理大量文本数据的应用。 3. **JNotify**:JNotify是一个Java库,用于监视文件系统事件,如文件...

    random-drift:从 code.google.comprandom-drift 自动导出

    当前的实现是基于 lucene(使用版本 3.6.2)索引的随机向量索引。 矢量分类有以下缺点: 训练类别或类别所需的正数数量随着类别/类别数量的增加而增加。 类别的训练随着内容的变化而变得陈旧,例如,与新闻内容一样...

    贝叶斯文本分类器JAVA

    Lucene提供了文本分析、索引和搜索功能,对于构建文本分类器至关重要。在这个版本中,它可能包含了基础的分词、停用词过滤、词干提取等功能,这些都是预处理文本数据的常用步骤,以减少噪音并提取关键特征。 其次,...

    新浪滚动新闻检索与分类1

    - `lucene` 包使用 **Apache Lucene** 创建文本搜索索引。 - `utils` 包提供通用函数和数据库操作。 - `offlineApp.java` 是此子模块的入口点,执行不同任务。 - `com` 子模块基于 **Spring Boot** 和 **...

Global site tag (gtag.js) - Google Analytics