import java.util.ArrayList;
import java.util.List;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.queryParser.MultiFieldQueryParser;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TopDocs;
import cn.itcast.cc.lucene.helloword.Article;
import cn.itcast.cc.lucene.helloword.utils.ArticleDocUtils;
public class IndexDao {
// 索引目录
private String indexPath = "./index";
// 分词器
private Analyzer analyzer = new StandardAnalyzer();
/**
* 保存记录
*
* @param art
*/
public void save(Article art) {
// lucene的写出索引类
IndexWriter indexWriter = null;
try {
indexWriter = new IndexWriter(this.indexPath, this.analyzer,
MaxFieldLength.LIMITED);
// 添加到索引库
indexWriter.addDocument(ArticleDocUtils.Article2Doc(art));
} catch (Exception e) {
e.printStackTrace();
}
// 释放indexWriter
if (indexWriter != null) {
try {
// 使用后一定要关闭
indexWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 更新记录
*
* @param art
*/
public void update(Article art) {
IndexWriter indexWriter = null;
try {
indexWriter = new IndexWriter(this.indexPath, this.analyzer,
MaxFieldLength.LIMITED);
Term term = new Term("id", art.getId() + "");
// 更新
indexWriter.updateDocument(term, ArticleDocUtils.Article2Doc(art));
} catch (Exception e) {
e.printStackTrace();
}
// 释放indexWriter
if (indexWriter != null) {
try {
indexWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 删除记录
*
* @param id
*/
public void delete(int id) {
IndexWriter indexWriter = null;
try {
indexWriter = new IndexWriter(this.indexPath, this.analyzer,
MaxFieldLength.LIMITED);
Term term = new Term("id", id + "");
// 删除
indexWriter.deleteDocuments(term);
} catch (Exception e1) {
e1.printStackTrace();
}
// 释放indexWriter
if (indexWriter != null) {
try {
indexWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 查询记录(具有分页功
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
网上MMAnalyzer资源太少了,大多数初学者都会少导入JAR包,并且网上只有 je-analysis-MMAnalyzer的例子,而没有依赖包lucene-core-2.4.1.jar je-analysis-1.5.3.jar以及 luncene-heghlighter-2.4.1.jar
在构建一个自定义搜索引擎的过程中,Luncene 2.0 和 Heritrix 是两个关键的组件。Luncene 是一个流行的全文检索库,而 Heritrix 是一款强大的网络抓取工具,它们共同为搜索引擎的搭建提供了坚实的基础。下面将详细...
Luncene的API,详细接受了Luncene的使用方法
luncene in action中文版 doc格式
**全文搜索Lucene.Net** Lucene.Net是一款开源的全文搜索引擎库,它为.NET开发者提供了强大的文本检索功能。作为Apache Lucene项目的.NET版本,它在.NET Framework上实现了原生Lucene的功能,使得.NET开发者也能...
Apache Lucene是一个开源全文搜索引擎库,它为开发者提供了在各种应用程序中实现高级搜索功能所需的工具。Lucene API(Application Programming Interface)是这个库的核心部分,允许程序员与Lucene进行交互,构建...
标题中的“luncene jar包Java专用”指的是专门为Java环境设计的Lucene库,以.jar文件形式提供,便于开发者集成到他们的项目中。这个库包含了所有必要的类和方法,使得开发人员能够构建自己的搜索引擎应用,对文本...
ASP.NET与Lucene.NET是两个在开发领域中广泛使用的开源技术。ASP.NET是Microsoft推出的用于构建Web应用程序的框架,而Lucene.NET则是一个强大的全文搜索引擎库,被许多开发者用来为他们的应用添加高效的搜索功能。...
luncene 简单的开原项目
#### 概述 Lucene是一款高性能、全功能的文本搜索引擎库,被广泛应用于多种场景下的全文检索应用开发中。... #### Lucene基础概念 在深入了解如何处理特定类型的文档之前,我们需要先了解几个基本概念: ...
基于Lucene的Compass框架详解-Java 一、Compass框架概述 Compass是一个高性能的开源Java搜索引擎框架,旨在简化应用程序与搜索引擎之间的集成过程。它不仅利用了顶级的Lucene搜索引擎的强大功能,还融合了诸如...
标题与描述均为“luncene in action 003”,但是需要注意的是正确的拼写应为“Lucene in Action”,这是一本介绍Apache Lucene的书籍。由于提供的部分内容仅包含了一些重复的试读版本声明及网址,并未提供具体的章节...
在构建一个自定义搜索引擎的过程中,Luncene 2.0 和 Heritrix 是两个关键的开源工具。Luncene 是一款强大的全文搜索引擎库,而 Heritrix 是一个网络抓取工具,它们共同为创建一个完整的搜索解决方案提供了基础。 **...
在给定的压缩包文件“luncene.jar”中,包含了三个重要的Lucene组件:lucene-core-3.0.3.jar、lucene-highlighter-3.0.1.jar和lucene-memory-3.0.1.jar,这些组件是构建高效搜索引擎的基础。 首先,我们来看一下`...
### Lucene知识点详解 #### 一、Lucene简介 **1.1 什么是Lucene** Lucene是一个由Apache基金会维护的开源全文检索引擎工具包。它为开发者提供了一个简便的接口,使得在应用程序中实现高效的全文检索功能成为可能...
根据提供的标题、描述、标签以及部分内容来看,似乎存在一定的误解,因为这些信息并没有提供关于“Lucene in Action002”具体内容的有效信息。“Lucene in Action”通常是一本书的名称,该书深入介绍了Apache Lucene...
### 基于Java的Luncene的Compass框架说明使用技术文档 #### 一、原理描述 Compass是一款优秀的开源Java搜索引擎框架,它能够帮助应用程序实现更为强大的搜索引擎语义能力。Compass依赖于顶级的Lucene搜索引擎,并...
在本篇文章中,我们将深入探讨如何在Lucene 4.6中实现自定义查询评分规则。此技术允许用户根据特定需求调整文档的相关性评分,从而更精确地满足搜索需求。 ### Lucene 4.6 自定义查询评分规则 ...
**Lucene.NET 全面解析:构建高效文件内容搜索引擎** Lucene.NET 是一个开源全文搜索引擎库,基于 Java 版本的 Lucene,并针对 .NET 平台进行了优化。...本文将深入探讨 Lucene.NET 的核心概念和使用方法,以创建一个...