`

Lucene 3.5学习

    博客分类:
  • Java
阅读更多
1.建立索引
File indexDir=new File("E:\\Index\\");
		
		Analyzer luceneAnalyzer=new StandardAnalyzer(Version.LUCENE_35);
		
		IndexWriter indexWriter=null;
		
		try {
			
			IndexWriterConfig indexWriterConfig=new IndexWriterConfig(Version.LUCENE_35,luceneAnalyzer);
			
			indexWriter=new IndexWriter(SimpleFSDirectory.open(indexDir),indexWriterConfig);
			
			Field f1=new Field("name","",Field.Store.YES,Field.Index.ANALYZED);
			
			Field f2=new Field("address","",Field.Store.YES,Field.Index.ANALYZED);
			
			ResultSet rs=getResultSet("select * from authors");
			
			while(rs.next())
			{
				Document doc=new Document();
				f1.setValue(rs.getString(2));
				
				System.out.println(rs.getString(2));
				
				doc.add(f1);
				
				f2.setValue(rs.getString(4));
				doc.add(f2);
				
				System.out.println(rs.getString(4));
				
				indexWriter.addDocument(doc);
			}
			
			System.out.println("DocNum:"+indexWriter.numDocs());
			
			indexWriter.commit();			
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally
		{
			try {
				
				indexWriter.close();
				
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}


Field.Store.YES或者NO(存储域选项)

设置为YES表示或把这个域中的内容完全存储到文件中,方便进行文本的还原

设置为NO表示把这个域的内容不存储到文件中,但是可以被索引,此时内容无法完全 还原(doc.get是为null)

Field.Index(索引选项)

Index.ANALYZED:进行分词和索引,适用于标题、内容等

Index.NOT_ANALYZED:进行索引,但是不进行分词,如果身份证号,姓名,ID等,适 用于精确搜索

Index.ANALYZED_NOT_NORMS:进行分词但是不存储norms信息,这个norms中包括 了创建索引的时间和权值等信息

Index.NOT_ANALYZED_NOT_NORMS:即不进行分词也不存储norms信息

Index.NO:不进行索引


2.查找索引
IndexSearcher indexSearcher=null;
		
		String [] queryFileds = {"name","address"};
		
		try {
			
			Directory dir=new SimpleFSDirectory(new File("E:\\Index"));
			
			indexSearcher=new IndexSearcher(IndexReader.open(dir));
			
			QueryParser queryParser=new MultiFieldQueryParser(Version.LUCENE_35,queryFileds,new StandardAnalyzer(Version.LUCENE_35));
			
			String key="宁";
			
			Query query=queryParser.parse(key);
						
			TopDocs topDocs=indexSearcher.search(query,10);
			
			System.out.println("Total:"+topDocs.totalHits);
			
			for(ScoreDoc scoreDoc:topDocs.scoreDocs)
			{
				Document doc=indexSearcher.doc(scoreDoc.doc);
				System.out.println(doc.get("name"));
				System.out.println(doc.get("address"));
			}
			
			indexSearcher.close();
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
分享到:
评论

相关推荐

    lucene 3.5学习笔记

    《Lucene 3.5 学习笔记》 在信息技术高速发展的今天,搜索引擎技术成为了信息检索的核心工具。Apache Lucene,作为一个开源全文检索库,为开发者提供了强大的文本搜索功能。本文将深入探讨Lucene 3.5版本的相关知识...

    lucene3.5学习笔记

    ### Lucene 3.5 学习笔记 #### 一、Lucene 3.5 基本概念 ##### 1.1 Lucene 概述 **1.1.1 IndexWriter** `IndexWriter` 是 Lucene 中的核心类之一,用于创建或更新索引。它提供了添加文档、删除文档、优化索引等...

    Lucene3.5源码jar包

    本压缩包包含的是Lucene 3.5.0版本的全部源码,对于想要深入理解Lucene工作原理、进行二次开发或者进行搜索引擎相关研究的开发者来说,是一份非常宝贵的学习资源。 Lucene 3.5.0是Lucene的一个重要版本,它在3.x...

    lucene3.5的各种包

    不过,对于理解搜索引擎的工作机制和学习基本的全文搜索实现,Lucene 3.5仍然是一个很好的起点。通过深入研究这个压缩包中的各种包和源码,开发者可以掌握如何构建一个高效的全文搜索系统,并在此基础上进行扩展和...

    lucene 3.5 官网 源代码

    开发者可以通过源代码学习如何集成Lucene到自己的项目中,以实现高效、精确的全文检索功能。 总结,Lucene 3.5的源代码是理解其工作原理的宝贵资源。通过对源码的深入研究,开发者不仅可以掌握Lucene的基本操作,还...

    Lucene3.5的学习研究报告

    《深入探索Lucene 3.5:学习研究报告》 Lucene 3.5是一个重要的版本更新,它在2011年11月26日发布,为搜索引擎开发者提供了更高效、更稳定的功能。该版本在性能优化、新特性和错误修复上取得了显著的进步。 首先,...

    lucene3.5源码

    《深入剖析Lucene 3.5源码:揭示搜索引擎核心技术》 Lucene 3.5是Apache Lucene项目的一个重要版本,它是一个高性能、全文本搜索库,为开发者提供了强大的文本搜索功能。作为开源软件,Lucene的源码对学习和理解...

    Lucene 3.5&API,最新版

    **正文** Lucene 是一个由 Apache 软件基金会开发的全文搜索引擎库,它提供了强大的文本分析和索引功能,广泛应用于各种信息检索系统。...理解这些基础知识对于深入学习 Lucene 的后续版本至关重要。

    关于lucene3.5的使用

    在“关于lucene3.5的使用”这个主题中,我们将深入探讨Lucene 3.5的关键特性、核心组件以及如何通过实例进行应用。首先,我们需要了解以下几个核心概念: 1. **索引(Index)**:Lucene 的工作基于索引,就像书籍的...

    lucene3.5的API

    在本篇文章中,我们将深入探讨 Lucene 3.5 版本的 API,尽管它是英文版,但其丰富的功能和详细文档使其对开发者极具价值。 1. **Lucene 的基本概念** - **索引(Index)**:Lucene 使用倒排索引(Inverted Index)...

    Lucene测试程序3.5

    Lucene测试程序3.5是一款基于Java开发的小型应用,主要用于验证和学习Lucene 3.5版本的功能。Lucene是一个高度成熟、功能强大的全文搜索引擎库,由Apache软件基金会开发并维护。它提供了丰富的API,允许开发者在应用...

    Lucene 索引图形化界面工具 LukeAll 3.5~4.0

    **Lucene 索引图形化界面工具 LukeAll 3.5~4.0** Lucene 是一个开源的全文搜索引擎库,它提供了强大的文本搜索功能,但其本身的接口设计是命令行或者编程式的,对于非开发人员或者在调试索引时可能会显得不太友好。...

    luke3.5源码

    《深入剖析Luke 3.5源码:洞察Lucene索引查看工具的奥秘》 Luke 3.5是一款强大的Lucene索引查看工具,它为开发者提供了直观、详尽的方式来浏览和分析Lucene创建的索引。在这个版本中,Luke提供了一种直观的方式,使...

    lucene智能检索

    4. **案例中的“lucene3.5全文检索案例”** 这个压缩包可能包含了基于 Lucene 3.5 版本的一个全文检索示例项目。用户可以通过学习这个案例了解如何在实际项目中集成和使用 Lucene,包括设置 Analyzer、构建索引、...

    lucene基础总结

    ### Lucene基础知识总结 #### 一、Lucene简介与核心概念 **Lucene**是一款高性能、全文搜索引擎库,由Java...以上内容总结了在学习和使用Lucene过程中的关键知识点,希望能帮助读者更好地理解和应用Lucene的技术。

    Apache-Solr-Reference-Guide-v3.5

    ### Apache Solr Reference Guide v3.5:关键知识点解析 #### 一、Solr与Lucene简介 **Solr** 是一个高性能、可扩展的...通过学习这些知识点,可以更好地理解和运用Solr的强大功能,从而实现高效的数据检索和管理。

    解密搜索引擎技术实战:Lucene&Java精华版

    - **3.5 存储提取内容**:探讨了如何高效存储提取到的文本内容。 #### 中文分词原理与实现 **第4章**“中文分词原理与实现”详细探讨了中文分词的相关理论和技术实现。这一章节覆盖了中文分词的基本原理、算法实现...

Global site tag (gtag.js) - Google Analytics