`

Lucene_demo01_FirstProject

阅读更多
Lucene_demo01_FirstProject

lucene版本:3.0.1
导入下面四个包


Junit4测试类:
/**
 * 创建一个索引库,把一个信息加入到索引库中、把信息从索引库中检索出来
 */
public class HelloLuceneWorld {
	/**
	 * 创建索引
	 */
	@Test
	public void createIndex() throws Exception {
		// 1创建article对象
		Article article = new Article();
		article.setId(1L);
		article.setTitle("NBA总决赛");
		article.setContent("LBJ和韦德能带领热火在2013赛季拿到NBA总冠军吗?");

		// 创建索引库,创建IndexWriter对象
		Directory directory = FSDirectory.open(new File("./indexDir"));
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
		IndexWriter indexWriter = new IndexWriter(directory, analyzer, MaxFieldLength.LIMITED);

		// 把article对象转化成document、把article对象加入到索引库中
		Document document = new Document();
		Field idField = new Field("id", article.getId().toString(), Store.YES, Index.NOT_ANALYZED);
		Field titleField = new Field("title", article.getTitle(), Store.YES, Index.ANALYZED);
		Field contentField = new Field("content", article.getContent(), Store.YES, Index.ANALYZED);
		document.add(idField);
		document.add(titleField);
		document.add(contentField);

		indexWriter.addDocument(document);// 信息放入到索引库
		indexWriter.close();// 关闭indexWriter
	}

	/**
	 * 进行检索
	 */
	@Test
	public void searchIndex() throws Exception {
		// 创建IndexSearch对象
		Directory directory = FSDirectory.open(new File("./indexDir"));
		IndexSearcher indexSearcher = new IndexSearcher(directory);
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
		QueryParser queryParser = new QueryParser(Version.LUCENE_30, "title", analyzer);
		Query query = queryParser.parse("总决赛");// 关键词
		TopDocs topDocs = indexSearcher.search(query, 5);// 第二个参数为n,提取前n条记录
		int count = topDocs.totalHits;// 根据关键词检索出来的总的记录数
		ScoreDoc[] scoreDocs = topDocs.scoreDocs;
		List<Article> articleList = new ArrayList<Article>();
		for (int i = 0; i < scoreDocs.length; i++) {
			int index = scoreDocs[i].doc;
			Document document = indexSearcher.doc(index);
			Article article = new Article();
			article.setId(Long.parseLong(document.get("id")));
			article.setTitle(document.get("title"));
			article.setContent(document.get("content"));
			articleList.add(article);
		}

		// 输出查询到的信息
		for (Article article : articleList) {
			System.out.println(article.getId());
			System.out.println(article.getTitle());
			System.out.println(article.getContent());
		}
	}
}
分享到:
评论

相关推荐

    lucene_demo例子

    在"lucene_demo"这个压缩包中,很可能包含了一些示例代码或者项目,用于演示如何使用Lucene进行实际的文本搜索开发。这些示例通常会涵盖以下几个关键知识点: 1. **安装与配置**:Lucene的下载、构建环境的搭建,...

    vb.net2.0_Lucene_test.rar_lucene_lucene vb.n_lucene.net vb

    标题中的“vb.net2.0_Lucene_test.rar_lucene_lucene vb.n_lucene.net vb”表明这是一个关于使用VB.NET 2.0版本实现Lucene搜索引擎的测试项目。Lucene是一个高性能、全文本搜索库,广泛应用于Java开发,而这里则是将...

    java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web

    【标题】"java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web" 提供的信息表明这是一个使用Java和Lucene框架实现的搜索系统,特别是针对公交数据的搜索。Lucene是Apache软件基金会的一个开源全文检索库,...

    lucene_in_action中文版

    lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版

    lucene_cn.jar

    “META-INF”目录则包含了Lucene的相关元数据,如MANIFEST.MF文件,它记录了jar包的基本信息和依赖关系,这对于构建和运行环境的配置至关重要。在部署和运行Lucene_CN.jar时,这些元数据会帮助系统正确地加载和执行...

    luceneDemo_pure1aa_DEMO_clucene_

    将提供的“luceneDemo”文件加入到项目中,这是DEMO的主要代码。这个DEMO将展示如何使用Clucene的基本操作,包括创建索引、搜索索引等关键步骤。 五、理解DEMO代码 DEMO代码通常包含以下几个部分: 1. **索引创建...

    ssd.rar_lucene_搜索 lucene_搜索引擎_文本搜索

    **Lucene搜索引擎简介** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的开源搜索引擎框架。它为开发者提供了在应用程序中实现全文索引和搜索功能的基础工具。Lucene的...

    lucene_book(1).rar_Lucene Heritrix_heritrix_project_search_sym

    Lucene+Heritrix搜索引擎的一个成功案例 市值30000万 只需下载,用Eclipse-import为web工程就可以了 需要安装mysql 5.5 同时由于此工程为web工程所以假如您的Eclipse没有安装tomcatPlugin的话,请也同时安装tomcat...

    Lucene资料大全(包括Lucene_in_Action书等)

    标题"Lucene资料大全(包括Lucene_in_Action书等)"表明这是一个包含全面Lucene学习资源的集合,其中最显著的是《Lucene_in_Action》这本书。这是一本广泛认可的关于Apache Lucene的权威指南,通常被简称为LIA,它深入...

    chinese_lucene.rar_Lucene C#_Lucene for .net_PanGu4Lucene_lucene

    《深入理解Lucene C#与.NET环境下的应用实践》 Lucene是一款强大的全文搜索引擎库,最初由Apache软件基金会开发,现已成为Apache Lucene项目的一部分。它提供了高效的索引和搜索功能,广泛应用于各类数据检索系统。...

    lucene_web项目应用实例

    《Lucene Web项目应用实例详解》 在信息技术领域,搜索引擎技术是不可或缺的一部分,Apache Lucene作为一款开源全文搜索引擎库,为开发者提供了强大的文本检索能力。本文将深入探讨一个名为“lucene_web”的项目,...

    Lucene_in_ Action

    Lucene_in_Action english版

    lucene_jar包

    **Lucene jar包详解** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。这个"lucene_jar包"包含了Lucene的核心组件,是开发者构建搜索功能的基础。在Java开发环境中,jar(Java Archive)包是将...

    lucenevideao(eddy).rar_Lucene.net a_eddy_lucene_lucene web_luce

    这个名为“lucenevideao(eddy).rar_Lucene.net a_eddy_lucene_lucene web_luce”的资源,包含了一份由Eddy精心制作的Lucene.NET视频教程,以及相关的学习材料,是深入理解和应用Lucene.NET的好帮手。 首先,视频...

    Lucene_in_ Action java search engine.PDF 搜索引擎教程

    Lucene_in_ Action java search engine.PDF 搜索引擎教程

    JAVA_Lucene_in_Action教程完整版

    ### JAVA_Lucene_in_Action教程知识点概述 #### 一、Lucene简介与背景 - **Lucene的起源**:Lucene最初作为一个私有项目由Doug Cutting创建于1997年末,目的是为了学习Java并尝试创建搜索软件。由于缺乏销售经验,...

Global site tag (gtag.js) - Google Analytics