`
Java_大猫
  • 浏览: 173967 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

lucene3.5 学习笔记01

 
阅读更多
最近在看这方面的知识,初学者一起分享

public class LuceneTest {
 
	   File filePath = new File("D:\\uploadfiles");  
	   File indexPath = new File("D:\\luceneIndex");  
    //创建分词器
    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
    //建立索引的配置类,包含了一个解析器
    IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_35, analyzer).setOpenMode(OpenMode.CREATE);
    
    
    
    
    public void indexMethod(IndexWriter writer, File file) throws Exception{
    	if(file.isDirectory()){    		
	    	String[] files = file.list();
	    	for(int i=0;i<files.length;i++){
	    		indexMethod(writer,new File(file,files[i]));
	    	}
    	}else{
    		FileInputStream fis = new FileInputStream(file);
    		Document doc  = new Document();
    		doc.add(new Field("name",file.getName(),Store.YES,Index.ANALYZED));
//    		doc.add(new Field("content",new BufferedReader(new InputStreamReader(fis, "UTF-8"))));
    		
			doc.add(new Field("content",ToolUtilFile.fileToStringUtil(file),Store.YES,Index.ANALYZED));

    		
    		doc.add(new Field("size",String.valueOf(file.length()),Store.YES,Index.ANALYZED_NO_NORMS));
    		doc.add(new Field("path",file.getAbsolutePath(),Store.YES,Index.ANALYZED_NO_NORMS));
    		writer.addDocument(doc);
    		
    		
    	}
    }
    
    public void searchMethod() throws Exception{
	    //获取查询
	    Directory directory = FSDirectory.open(indexPath);  
	    IndexReader reader = IndexReader.open(directory);
	    IndexSearcher searcher = new IndexSearcher(reader);
	    
	  //把要搜索的文本解析为Query  
	    String queryString = "hello"; 
	    String[] fields = {"name","content"};
	    
	    QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_35, fields, analyzer);
	    Query query = parser.parse(queryString);
	    TopDocs topDocs = searcher.search(query, null, 10000);//topDocs 类似集合  
	    System.out.println("总共有【"+topDocs.totalHits+"】条匹配结果."); 
	    //输出      
        for(ScoreDoc scoreDoc:topDocs.scoreDocs){  
        int docSn = scoreDoc.doc;//文档内部编号  
        Document doc = searcher.doc(docSn);//根据文档编号取出相应的文档  
        File2Document.printDocumentInfo(doc);//打印出文档信息  
          
        }
    }
    
    
    
    
	@Test
	public void createIndex() throws Exception{
		 Directory dir = FSDirectory.open(indexPath);   
		 IndexWriter writer = new IndexWriter(dir, iwc);
		 indexMethod(writer,filePath);
		 writer.close();
	}
	
	@Test
	public void searchIndex() throws Exception{
		searchMethod();
	}
	
	
	
}
分享到:
评论

相关推荐

    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的基本操作,还...

    luke3.5 查看lucene3.5索引

    luke3.5 可查看lucene3.5索引

    lucene3.5 IKAnalyzer3.2.5 实例中文分词通过

    lucene3.5 IKAnalyzer3.2.5 实例中文分词通过,目前在网上找的lucene 和IKAnalyzer 的最新版本测试通过。内含:示例代码,以及最新jar包。 lucene lucene3.5 IKAnalyzer IKAnalyzer3.2.5 jar 中文 分词

    lucene3.5的创建和增删改查

    《Lucene 3.5:创建、增删改查详解》 Lucene 是一个高性能、全文本搜索库,被广泛应用于各种搜索引擎的开发。在3.5版本中,Lucene 提供了强大的文本分析和索引功能,以及对文档的高效检索。本文将详细介绍如何在...

    lucene3.5全文检索案例lucene+demo

    《深入剖析Lucene 3.5全文检索技术与实战演示》 Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护。在3.5版本中,Lucene提供了强大的文本处理、索引构建和搜索功能,使得开发者可以轻松地在自己的...

    Lucene3.5的学习研究报告

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

    Lucene3.5实例

    《Lucene3.5实例详解:构建全文搜索引擎》 Apache Lucene是一个开源的全文检索库,为Java开发者提供了强大的文本搜索功能。在本实例中,我们将深入探讨如何使用Lucene 3.5版本来构建一个基本的全文搜索引擎,主要...

    lucene3.5高亮jar

    lucene3.5高亮

    Lucene 3.5 api HTML版

    **Lucene 3.5 API 概述** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发。它提供了高级文本检索功能,广泛用于构建搜索引擎和其他需要高效全文检索能力的应用。Lucene 3.5 API 是该库在2011年发布...

    Lucene3.5帮助文档

    chm格式的Lucene帮助文档,Lucene3.5

    lucene3.5中文分词案例

    《Lucene 3.5中文分词案例解析》 Lucene是一个开源的全文搜索引擎库,广泛应用于各种信息检索系统中。在3.5版本中,Lucene已经支持了中文分词,这对于处理中文文档和搜索需求显得尤为重要。本文将深入探讨Lucene ...

    lucene3.5源码

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

    Lucene 3.5&API,最新版

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

    lucene3.5的API

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

    关于lucene3.5的使用

    在3.5版本中,Lucene 已经相当成熟,虽然现在已经有了更新的版本,但学习3.5版的基础仍对理解Lucene的核心概念非常有帮助。 在“关于lucene3.5的使用”这个主题中,我们将深入探讨Lucene 3.5的关键特性、核心组件...

    Lucene3.5视频教程(内含分享链接)

    Lucene3.5视频教程(内含分享链接) 一共50集, 包含各部分讲解及源码

Global site tag (gtag.js) - Google Analytics