`
BradyZhu
  • 浏览: 261243 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

开发搜索引擎初步(二)搜索(Lucene实现)

 
阅读更多

经过上一篇的经验,想必大家对建立索引应该没有什么问题了,下面我们就开始最简单的搜索,也就是对我们已经建立好的索引进行检索,废话不多说,下面看代码

package com.dreamers.search;

import java.io.File;
import java.io.IOException;
import java.util.Date;

import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;

public class IndexSearch {
	private String INDEX_STORE_PATH = "d:\\LuceneDemo";//注意,此处的PATH为你的索引在磁盘中的存放位置
	public void search(){
		try{
			Directory directory = FSDirectory.open(new File(INDEX_STORE_PATH));//建立库,导入索引
		    System.out.println("使用索引搜索");
		    IndexSearcher searcher = new IndexSearcher(directory);//初始化搜索的类,在Lucene中
		    Term t = new Term("publisher","历城二中");//构建搜索初始化元
		    Query q = new TermQuery(t);
		    Date begin = new Date();//建立时间,以便显示搜索用时
		    ScoreDoc[] hits = searcher.search(q,null,1000).scoreDocs;//将搜索到的资源放入数组
		    System.out.println("共找到 " + hits.length + " 个文档符合条件");
		    for (int i = 0; i < hits.length; i++){
		    	Document doc = new Document();//遍历资源
		    	doc = searcher.doc(hits[i].doc);
		    	System.out.print("文件名为: ");
		    	System.out.print(doc.get("title"));
		    	System.out.print(".");
		    	System.out.println(doc.get("kind"));
		    	System.out.print("地址为 : ");
		    	System.out.println(doc.get("url"));
		    	System.out.print("描述: ");
		    	System.out.println(doc.get("describe"));
		    	System.out.print("scores is :");
		    	System.out.println(hits[i].score);
		    	System.out.print("作者为:");
		    	System.out.println(doc.get("author"));
		    	System.out.println("---------------------------------------------------");
		    }
		    Date end = new Date();
		    long time = end.getTime()-begin.getTime();
		    System.out.print("搜索用时 " + time + "ms");
		}catch(IOException x){
			x.printStackTrace();
		}
	}
	
	public static void main(String [] args){
		IndexSearch search = new IndexSearch();
		search.search();//测试
	}

}


通过这个程序,我们可以很简单的实现对自己的在磁盘上面建立的索引文件进行按照自己的想法进行索引,呵呵,下面的工作就是自己去实现了

分享到:
评论

相关推荐

    Lucene搜索引擎开发权威经典

    《Lucene搜索引擎开发权威经典》是一本深入探讨搜索引擎技术的专著,主要聚焦于开源的全文检索库——Apache Lucene。这本书是学习和理解搜索引擎工作原理以及如何利用Lucene进行开发的重要参考资料。Lucene是一个高...

    ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现(源代码+LW).zip

    该压缩包包含的是一个使用ASP.NET技术和Ajax以及Lucene库构建的搜索引擎的源代码和相关资源。这个项目可能是一个毕业设计,旨在展示如何在Web环境中实现实时、高效的搜索功能。 首先,ASP.NET是微软开发的一种用于...

    基于Ruby+Java搜索引擎原理与实现

    《基于Ruby+Java搜索引擎原理与实现》是一部深入探讨搜索引擎技术的书籍,虽然只涵盖了前三个章节,但已足以让我们对搜索引擎的基本运作有初步的理解。在本文中,我们将围绕Ruby和Java这两种编程语言如何应用于搜索...

    解密搜索引擎7-9章

    通过对这7-9章的学习,读者可以全面掌握搜索引擎的工作流程,熟练运用Lucene进行实际项目开发,并能运用Java优化搜索引擎的性能。无论是对搜索引擎有初步了解,还是希望进一步提升技术水平的开发者,这份资料都能...

    基于Javaweb的搜索引擎的实现报告模板.docx

    基于Java Web的搜索引擎实现是一个复杂而综合的项目,涉及到多个技术层面和步骤。在这个项目中,主要使用了Heritrix网络爬虫、Lucene全文搜索引擎、Tika页面解析器以及mmseg4j分词器来构建一个针对学院官网新闻板块...

    c# 开源搜索引擎完整的例子

    这个"C# 开源搜索引擎"项目为学习者提供了一个实践搜索引擎开发的完整环境,涵盖了从基础的网络编程到复杂的文本处理和分布式系统设计等多个方面,对于提升C#开发者的技术能力大有裨益。通过研究这个项目,你可以...

    Lucene 2.0.0下载安装及简单测试

    Lucene是一款高性能、全功能的文本搜索引擎库,由Java编写,旨在为应用提供快速、高效的全文检索能力。它不仅仅是一个简单的索引和搜索工具,还提供了丰富的查询语言、分词器和其他高级功能。对于希望在其应用程序中...

    Lucene初探,一个初级的LuceneDemo

    Apache Lucene就是这样一款强大的开源全文搜索引擎库,它为开发者提供了构建自定义搜索引擎所需的全部工具。这篇博客将带你初探Lucene,通过一个初级的LuceneDemo来了解其基本概念和操作。 首先,让我们了解一下...

    第一个lucene的简单实例....

    标题 "第一个lucene的简单实例" 提到的是关于Apache Lucene的初步应用,这是一个全文搜索引擎库,常用于Java开发中。Lucene提供了高效的文本搜索功能,使得开发者能够快速地在大量数据中查找相关信息。 描述中的 ...

    基于Lucene的MYSearch全文搜索引擎

    基于Lucene的全文搜索引擎MYSearch是通过利用Lucene开源框架来实现的。Lucene本身是一个全文索引引擎工具包,它不提供直接的搜索引擎界面,而是一系列用于文档索引和搜索的Java API。全文搜索引擎的核心工作流程包括...

    lucene-1.4-final

    《Lucene 1.4 Final:经典全文搜索引擎框架解析》 Lucene,作为Apache软件基金会的一个顶级项目,是一款开源的全文检索引擎库,为开发者提供了强大的文本搜索功能。本资料聚焦于Lucene 1.4 Final版本,这是一个历史...

    ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现(源代码+论文)_new.rar

    对于学生而言,它提供了从初步的构想到实际开发所需的全方位辅助材料,包括论文、设计文档和源代码等。 2. 包含内容: - 论文:涵盖了整个Java ASP Web系统的基础知识,设计意图、需求概述、系统结构与设计哲学、...

    搜索引擎IK分词器.zip

    总之,搜索引擎IK分词器是实现高效中文信息检索的关键组件,其强大的分词功能和灵活的配置选项使其在各种应用场景中都能发挥重要作用。无论是搜索引擎开发、信息提取还是自然语言处理,IK分词器都扮演着不可或缺的...

    中文分词及其在基于Lucene的全文检索中的应用

    全文检索技术是现代信息检索领域的重要组成部分,而Lucene作为一款开源的全文检索引擎框架,为开发者提供了便捷的二次开发接口。然而,Lucene在处理中文信息时存在一定的局限性,主要在于中文分词的复杂性和准确性。...

    Lucene_in_Action_中文版前5章

    《Lucene in Action》是一本深受开发者欢迎的书籍,专注于介绍Apache Lucene这款强大的全文搜索引擎库。这本书的中文版前5章为我们揭示了Lucene的基础知识和核心概念,对于理解和应用Lucene至关重要。以下是这些章节...

    springboot-es-search-master-master整合搜索引擎

    Elasticsearch则是一种基于Lucene的搜索服务器,提供了一个分布式、多用户能力的全文搜索引擎,基于RESTful接口,易于集成到各种应用程序中。 在SpringBoot项目中整合Elasticsearch,首先需要添加对应的依赖。在`...

    Lucene:我试过Lucene

    **标题解析:** "Lucene:我试过Lucene" 这个标题表明了作者对Apache Lucene这个全文搜索引擎库的个人体验或者初步探索。Lucene是Java开发的一个开源库,广泛用于信息检索和文本分析。 **描述解析:** "LuceneSample...

    Jediael_v0.01

    《Jediael_v0.01:初探Java搜索引擎的基石》 Jediael_v0.01,作为一款搜索引擎的早期版本,是Java技术在信息检索领域的实践应用。...尽管这只是初级阶段,但其背后的Java技术应用无疑展现了搜索引擎开发的广阔前景。

Global site tag (gtag.js) - Google Analytics