`

lucene的简单使用

阅读更多

1、下载地址:http://archive.apache.org/dist/lucene/java/

2、往项目中导入相关包。

3、构建第一个lucene项目,该项目的功能是把文档进行索引,索引之后进行搜索。

4、代码:

       HelloWord.java

                 

public class HelloWord {
	String filePath = "磁盘文件路径";
	String indexPath = "索引结果的存放路径";
//	Analyzer analyzer = new StandardAnalyzer();// 创建一个分词器
	Analyzer analyzer = new MMAnalyzer();// 创建一个分词器
	
    @Test
	public void createIndex() throws Exception {//创建索引
		Document doc = File2DocumentUtils.file2Document(filePath);;// 将磁盘文件转成Document对象
		IndexWriter indexWriter = new IndexWriter(indexPath, analyzer, true,
				MaxFieldLength.LIMITED);
	    indexWriter.addDocument(doc);
	    indexWriter.close();
	}
    @Test
	public void search() throws Exception{//搜索功能
    	  String queryString="room";
    	
    	// 1,把要搜索的文本解析为 Query
    	   String[] fields={"name","content"};
    	   QueryParser queryParse=new MultiFieldQueryParser(fields,analyzer);//解析器
    	   Query query=queryParse.parse(queryString);//解析搜索内容
    	// 2,进行查询
    	   IndexSearcher indexSearcher=new IndexSearcher(indexPath);//搜索器
    	   Filter filter=null;
    	   TopDocs topDocs= indexSearcher.search(query, filter, 10000);
    	  	// 3,打印结果
    	   System.out.println("总共有【" + topDocs.totalHits + "】条匹配结果");
    	   for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
    		   int docSn = scoreDoc.doc; // 文档内部编号
    		    Document doc = indexSearcher.doc(docSn); // 根据编号取出相应的文档
    		    File2DocumentUtils.printDocumentInfo(doc); // 打印出文档信息  
    	   }
	}
}

  File2DocumentUtils.java

 

public class File2DocumentUtils {

	public static Document file2Document(String filePath) {
	     File file=new File(filePath);
	     Document doc=new Document();
	     doc.add(new Field("name",file.getName(),Store.YES,Index.ANALYZED));
	     doc.add(new Field("content",readFileContent(file),Store.YES,Index.ANALYZED));
	     doc.add(new Field("size",NumberTools.longToString(file.length()),Store.YES,Index.ANALYZED));
	     doc.add(new Field("path",file.getAbsolutePath(),Store.YES,Index.ANALYZED));
	     return doc;
	}

	private static String readFileContent(File file){
       try {
		BufferedReader bufer=new BufferedReader(new InputStreamReader(new FileInputStream(file))); 
		   StringBuffer buf=new StringBuffer();
		   String str="";
		
		 while( (str= bufer.readLine())!=null)
		 {
			 buf.append(str).append("\n");
		 }
	     return buf.toString();
	} catch (Exception e) {
		throw new RuntimeException(e);
	} 
		
	}

	public static void printDocumentInfo(Document doc) {
		System.out.println("------------------------------");
		System.out.println("name     = " + doc.get("name"));
		System.out.println("content  = " + doc.get("content"));
		System.out.println("size     = " + NumberTools.stringToLong(doc.get("size")));
		System.out.println("path     = " + doc.get("path"));		
	}

}

 

分享到:
评论

相关推荐

    Lucene简单使用需要的jar

    总的来说,Lucene的使用涉及了文本分析、索引构建、查询解析和结果返回等多个环节,通过这些库和工具,开发者可以构建出高效、精确的全文搜索引擎。而上述的jar包组合,提供了完成这些任务所需的基本组件。

    Lucene3.1使用教程

    **Lucene 3.1 使用教程** Lucene 是一个高性能、全文检索库,由Apache软件基金会开发并维护。它提供了一个简单但功能强大的API,使得开发者可以轻松地在应用程序中集成全文检索功能。本教程主要关注的是Lucene 3.1...

    Lucene 索引的简单使用

    以上就是关于“Lucene索引的简单使用”的详细介绍,包括其核心概念、创建和查询索引的步骤以及一些高级特性。希望对你理解和应用Lucene有所帮助。在实际开发中,可以根据需求选择合适的Analyzer,优化索引策略,以...

    使用lucene进行简单的开发

    【使用Lucene进行简单的开发】 Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发。它提供了完整的搜索功能,包括分析、索引和搜索文本。在这个教程中,我们将了解如何利用Lucene进行简单的开发。 ### 一...

    lucene简单介绍及solr搭建使用

    标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...

    Lucene原理及使用总结

    一个简单的Lucene应用实例是搜索文本文档。例如,开发者可以创建一个索引目录,然后指定一个包含文本文档的数据目录。使用`Analyzer`(如CJKAnalyzer)对文本进行分析,通过`IndexWriter`将文档内容写入索引。这样,...

    Lucene使用代码实例之搜索文档

    以下是一个简单的示例代码,演示了如何使用Lucene搜索包含关键词"lucene"的文档: ```java public class TxtFileSearcher { public static void main(String[] args) throws Exception{ String queryStr = ...

    spring-lucene简单项目

    在"spring-lucene简单项目"中,我们将学习如何配置和使用Lucene来索引和检索数据。 项目开始时,你需要在Spring配置文件中声明Lucene的相关bean,如Analyzer(分析器)、Directory(存储索引的目录)和IndexWriter...

    IK分词器集成lucene4.5使用方法

    IK分词器是一款广泛应用于Java开发中的中文分词工具,主要为Lucene、Elasticsearch等全文搜索引擎提供支持。在本教程中,我们将探讨如何将IK分词器集成到Lucene 4.5版本中,以提升中文文本处理的效率和准确性。 ...

    Lucene的使用与优化

    ### Lucene的使用与优化 #### 一、Lucene简介 ...此外,还提供了一个简单的示例代码,帮助读者理解如何使用Lucene进行文档索引和搜索。希望这些知识点能够帮助大家更好地理解和使用Lucene这一强大的搜索引擎库。

    lucene3.0.3搜索的使用示例

    这个"lucene3.0.3搜索的使用示例"压缩包文件很可能是为了帮助用户理解并学习如何在项目中应用Lucene 3.0.3版本的功能。 在Lucene 3.0.3中,主要包含了以下核心概念和知识点: 1. **索引(Indexing)**:这是Lucene...

    Lucene 简单入门程序实例

    标题与描述:“Lucene简单入门程序实例”这一标题与描述明确指出文章将引导读者通过一个实际的示例来了解和掌握Lucene的基本操作。Lucene是一个高性能、全功能的文本搜索引擎库,它允许用户对文档进行索引和搜索。本...

    Lucene的简单介绍

    Lucene的目标是为软件开发人员提供简单易用的工具包,方便地在目标系统中实现全文搜索功能或构建一个完整的全文搜索引擎。 Lucene的主要优点包括: 1. 索引文件格式独立于应用平台:Lucene定义了一套以8位字节为...

    Lucene入门与使用

    Lucene入门与使用,非常简单,适合入门

    Lucene简单Demo(附带Jar)

    **Lucene的简单使用流程** 1. **创建Analyzer**: 根据需求选择或自定义分析器,例如使用StandardAnalyzer处理英文文本。 2. **创建Document**: 定义要索引的字段和内容,例如`document.add(new TextField("content...

    使用compass+lucene实现简单的全文检索功能

    本文将详细介绍如何使用 Compass 和 Lucene 实现一个简单的全文检索功能。 首先,Lucene 是一个高性能、全功能的文本分析库,主要用于信息检索。它提供了索引和搜索大量文本数据的能力,包括分词、分析、存储和搜索...

    LUCENE的搜索引擎例子

    本篇文章将深入探讨如何在B/S(浏览器/服务器)架构下利用Lucene实现一个简单的搜索引擎实例。 首先,我们需要了解Lucene的核心概念。Lucene提供了一套完整的文本检索框架,包括索引构建、查询解析、评分以及结果...

    Lucene示例 BM25相似度计算

    在Lucene中,查询可以是简单的关键词,也可以是复杂的布尔表达式。查询解析器将用户输入转化为 Lucene 可以理解的Query对象,然后执行查询,返回匹配的文档集合。在本示例中,我们将看到如何使用这些功能并对比不同...

Global site tag (gtag.js) - Google Analytics