@Test
public void saveIndex() throws Exception
{
File file = new File(indexPath);
FSDirectory dir = FSDirectory.getDirectory(file);
Document doc = File2DocumentUtils.file2Document(filePath);
IndexWriter indexWriter = new IndexWriter(dir, analyzer, MaxFieldLength.LIMITED);
indexWriter.addDocument(doc);
indexWriter.close();
}
@Test
public void deleteIndex() throws Exception
{
IndexWriter indexWriter = new IndexWriter(indexPath, analyzer, MaxFieldLength.LIMITED);
Term term = new Term("path", filePath);
indexWriter.deleteDocuments(term);
indexWriter.close();
}
@Test
public void updateIndex() throws Exception
{
IndexWriter indexWriter = new IndexWriter(indexPath, analyzer, MaxFieldLength.LIMITED);
Term term = new Term("path", filePath);
Document doc = File2DocumentUtils.file2Document(filePath);
//正直的更新是先删除在添加
indexWriter.updateDocument(term, doc);
indexWriter.close();
}
@Test
public void searchIndex() throws Exception
{
String queryString = "笑话";
// 把要搜索的文本解析成Query
String[] fields = {"name", "content"};
QueryParser queryParser = new MultiFieldQueryParser(fields, analyzer);
Query query = queryParser.parse(queryString);
// 进行查询
IndexSearcher indexSearcher = new IndexSearcher(indexPath);
Filter filter = null;
// 相当于一个List集合
TopDocs topDocs = indexSearcher.search(query, filter, 10000);
int firstResult = 0;
int max = 3;
int end = Math.min(firstResult+max, topDocs.totalHits);
// 打印结果
for (int i=firstResult; i<end;i++)
{
ScoreDoc scoreDoc = topDocs.scoreDocs[i];
int docSn = scoreDoc.doc;// 文档内部编号
Document doc = indexSearcher.doc(docSn); // 根据编号取出相应的文档
File2DocumentUtils.printDocumentInfo(doc);
}
System.out.println("总共有[" + topDocs.totalHits + "]条匹配结果");
}
分享到:
相关推荐
在这个“lucene增删改查小demo”中,我们将探讨如何利用 Lucene 实现文本数据的增、删、改、查操作。 **一、创建索引(Add)** 创建索引是 Lucene 的首要步骤,它将文档内容转化为可搜索的结构。首先,我们需要...
在这个“Lucene3.0增删改查和关键字高亮实例”项目中,我们将深入理解如何利用Lucene 3.0版本进行索引构建、文档的增删改查操作,并学习关键字高亮显示的实现方法。 首先,我们要了解**创建索引**的基本流程。在...
《深入理解Lucene与IKAnalyzer:构建全文搜索引擎》 在信息技术高速发展的今天,数据的存储与检索变得至关重要。Lucene,作为一个开源的全文检索库,为开发者提供了强大的文本搜索功能。而IKAnalyzer作为针对中文...
**Lucene 5.3.1 增删改查...总的来说,理解并熟练运用Lucene 5.3.1的增删改查操作,能帮助开发者构建功能强大的全文搜索引擎,满足各种信息检索需求。通过不断的实践和优化,我们可以进一步提升搜索效率和用户体验。
《Lucene 3.5:创建、增删改查详解》 Lucene 是一个高性能、全文本搜索库,被广泛应用于各种搜索引擎的开发。在3.5版本中,Lucene 提供了强大的文本分析和索引功能,以及对文档的高效检索。本文将详细介绍如何在...
Solr的增删改查操作 #### 1.1 创建(Create) 在Solr中,创建文档通常涉及到定义一个XML或JSON格式的文档结构,然后通过HTTP POST请求将其发送到Solr服务器。例如,创建一个包含id、title和content字段的文档: ...
在这个实例中,开发者将展示如何在含有10万条数据的环境中实现文件的全文检索,并且包括增、删、改、查这四种基本操作。Lucene是一个强大的文本分析和搜索框架,它允许开发者构建高效且复杂的搜索功能。 描述中的...
本文将详细讲解如何在JDK 1.8环境下,利用JEST 5.0以上版本与ES 6.0以上版本进行增删改查操作。 首先,确保你已经正确安装并配置了JDK 1.8。JDK是Java开发工具包,是运行Java应用程序的基础。在安装JDK后,你需要...
在本示例中,我们将探讨如何使用Lucene进行基本的增删改查操作,并且了解如何处理中文文档以及利用Luke工具进行索引分析,以及实现搜索结果的高亮显示。 首先,让我们深入理解Lucene的基础概念。Lucene的核心是建立...
本文将深入探讨如何使用客户端工具来便捷地进行ES的增删改查操作,以及这些工具在全文检索和搜索引擎中的应用。 ### 一、Elasticsearch概述 Elasticsearch基于Lucene库构建,提供了分布式、实时、容错的全文检索...
这个Demo项目提供了SpringBoot与Elasticsearch的整合示例,包括了基础的增删改查操作,帮助开发者快速理解如何在实际应用中使用Elasticsearch。 首先,SpringBoot是Spring框架的一个轻量级版本,它简化了新Spring...
Elasticsearch 5.3.0 版本使用 Java API 进行基础的增删改查操作,提供了灵活且强大的功能。在实际应用中,开发者可以根据需求组合不同的查询条件,实现复杂的搜索逻辑。同时,Elasticsearch 的分布式特性使得它能...
【数据库索引库的增删改查】 ...以上就是关于索引库的增删改查操作,以及使用DataImport插件进行数据库连接和导入的基本步骤,以及如何进行复杂查询和结果处理的介绍。这些知识对于有效地管理和优化索引库至关重要。
在IT领域,Lucene是一个非常重要的全文搜索引擎库,它提供了高效、可扩展的搜索功能。在本主题中,我们将深入探讨如何使用Lucene进行创建、删除、修改和组合条件查询,以及如何实现类似MySQL中的LIKE、IN、OR和时间...
博客类别信息管理:增删改查,分页 评论管理: 评论信息管理:删查,分页 个人信息管理: 修改个人信息:图片上传和利用百度编辑器完成; 系统管理: 修改密码: 刷新系统缓存: 安全退出: 项目前台功能...
在这个学习程序中,我们将涉及Solr的安装、基本使用以及增删改查操作。 **三、Solr的安装** 1. 下载:从Apache官方网站获取最新版本的Solr,如文档中的`apache-solr-3.5.0.jar`。 2. 解压:解压缩下载的文件,进入...
5. **Lucene的增删改查操作** - **创建索引**:通过Analyzer将文本内容拆分成词项。 - **查询**:使用Term或QueryParser进行搜索,支持多字段查询和分页。 - **删除索引**:Lucene更新数据时会删除原有记录再创建...
- **SQL**:SQL语言提供了强大的数据增删改查功能,如`SqlExecute`函数所示,通过SQL语句实现对数据库的操作,具有事务处理和并发控制等高级特性。 - **Lucene**:Lucene的添加操作如`InsertProductLucene`函数所...
2. **文档的增、删、改操作** - **添加(Add)**:使用 `Document` 类来封装待索引的文档内容,然后通过 `IndexWriter` 将文档添加到索引中。 - **删除(Delete)**:通过文档 ID 或者 Term(关键词)来删除索引...
3. **数据库操作**:如SQL语句的编写,JDBC连接数据库,以及数据的增删改查操作。 4. **Lucene使用**:了解其核心概念,如Document、Field、Analyzer、IndexWriter、Directory、QueryParser等。 5. **文本处理**:...