`

Lucene的增删改查的操作

 
阅读更多
@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增删改查小demo”中,我们将探讨如何利用 Lucene 实现文本数据的增、删、改、查操作。 **一、创建索引(Add)** 创建索引是 Lucene 的首要步骤,它将文档内容转化为可搜索的结构。首先,我们需要...

    Lucene3.0增删改查和关键字高亮实例

    在这个“Lucene3.0增删改查和关键字高亮实例”项目中,我们将深入理解如何利用Lucene 3.0版本进行索引构建、文档的增删改查操作,并学习关键字高亮显示的实现方法。 首先,我们要了解**创建索引**的基本流程。在...

    lucene增删改查+IKAnalyzer

    《深入理解Lucene与IKAnalyzer:构建全文搜索引擎》 在信息技术高速发展的今天,数据的存储与检索变得至关重要。Lucene,作为一个开源的全文检索库,为开发者提供了强大的文本搜索功能。而IKAnalyzer作为针对中文...

    lucene5.3.1增删改查

    **Lucene 5.3.1 增删改查...总的来说,理解并熟练运用Lucene 5.3.1的增删改查操作,能帮助开发者构建功能强大的全文搜索引擎,满足各种信息检索需求。通过不断的实践和优化,我们可以进一步提升搜索效率和用户体验。

    lucene3.5的创建和增删改查

    《Lucene 3.5:创建、增删改查详解》 Lucene 是一个高性能、全文本搜索库,被广泛应用于各种搜索引擎的开发。在3.5版本中,Lucene 提供了强大的文本分析和索引功能,以及对文档的高效检索。本文将详细介绍如何在...

    solr的增删改查和高亮以及分组

    Solr的增删改查操作 #### 1.1 创建(Create) 在Solr中,创建文档通常涉及到定义一个XML或JSON格式的文档结构,然后通过HTTP POST请求将其发送到Solr服务器。例如,创建一个包含id、title和content字段的文档: ...

    lucene全文检索实例二(实现对10万条数据检索文件的增删改查操作)

    在这个实例中,开发者将展示如何在含有10万条数据的环境中实现文件的全文检索,并且包括增、删、改、查这四种基本操作。Lucene是一个强大的文本分析和搜索框架,它允许开发者构建高效且复杂的搜索功能。 描述中的...

    【JEST连接ES(6.0)进行增删改查】

    本文将详细讲解如何在JDK 1.8环境下,利用JEST 5.0以上版本与ES 6.0以上版本进行增删改查操作。 首先,确保你已经正确安装并配置了JDK 1.8。JDK是Java开发工具包,是运行Java应用程序的基础。在安装JDK后,你需要...

    lucene事例(包含基本增删改查、中文词分器、高亮显示等)

    在本示例中,我们将探讨如何使用Lucene进行基本的增删改查操作,并且了解如何处理中文文档以及利用Luke工具进行索引分析,以及实现搜索结果的高亮显示。 首先,让我们深入理解Lucene的基础概念。Lucene的核心是建立...

    es客户端工具,便捷操作es全文检索工具的增删改查

    本文将深入探讨如何使用客户端工具来便捷地进行ES的增删改查操作,以及这些工具在全文检索和搜索引擎中的应用。 ### 一、Elasticsearch概述 Elasticsearch基于Lucene库构建,提供了分布式、实时、容错的全文检索...

    springboot集合elasticsearch demo(内含增删改查)

    这个Demo项目提供了SpringBoot与Elasticsearch的整合示例,包括了基础的增删改查操作,帮助开发者快速理解如何在实际应用中使用Elasticsearch。 首先,SpringBoot是Spring框架的一个轻量级版本,它简化了新Spring...

    关于elasticsearch5.3.0基础增删改查实例文件

    Elasticsearch 5.3.0 版本使用 Java API 进行基础的增删改查操作,提供了灵活且强大的功能。在实际应用中,开发者可以根据需求组合不同的查询条件,实现复杂的搜索逻辑。同时,Elasticsearch 的分布式特性使得它能...

    1.3、索引库使用的增删改查,以及数据库的连接导入1

    【数据库索引库的增删改查】 ...以上就是关于索引库的增删改查操作,以及使用DataImport插件进行数据库连接和导入的基本步骤,以及如何进行复杂查询和结果处理的介绍。这些知识对于有效地管理和优化索引库至关重要。

    lucene创建修改删除组合条件查询

    在IT领域,Lucene是一个非常重要的全文搜索引擎库,它提供了高效、可扩展的搜索功能。在本主题中,我们将深入探讨如何使用Lucene进行创建、删除、修改和组合条件查询,以及如何实现类似MySQL中的LIKE、IN、OR和时间...

    博客系统(搜索利用Lucene)

    博客类别信息管理:增删改查,分页 评论管理: 评论信息管理:删查,分页 个人信息管理: 修改个人信息:图片上传和利用百度编辑器完成; 系统管理: 修改密码: 刷新系统缓存: 安全退出: 项目前台功能...

    Lucene学习程序

    在这个学习程序中,我们将涉及Solr的安装、基本使用以及增删改查操作。 **三、Solr的安装** 1. 下载:从Apache官方网站获取最新版本的Solr,如文档中的`apache-solr-3.5.0.jar`。 2. 解压:解压缩下载的文件,进入...

    lucene4.4使用手册.docx

    5. **Lucene的增删改查操作** - **创建索引**:通过Analyzer将文本内容拆分成词项。 - **查询**:使用Term或QueryParser进行搜索,支持多字段查询和分页。 - **删除索引**:Lucene更新数据时会删除原有记录再创建...

    Lucene与SQL对比学习

    - **SQL**:SQL语言提供了强大的数据增删改查功能,如`SqlExecute`函数所示,通过SQL语句实现对数据库的操作,具有事务处理和并发控制等高级特性。 - **Lucene**:Lucene的添加操作如`InsertProductLucene`函数所...

    Lucene Demo组件

    2. **文档的增、删、改操作** - **添加(Add)**:使用 `Document` 类来封装待索引的文档内容,然后通过 `IndexWriter` 将文档添加到索引中。 - **删除(Delete)**:通过文档 ID 或者 Term(关键词)来删除索引...

    Java(结合lucene)版的公交搜索系统.zip

    3. **数据库操作**:如SQL语句的编写,JDBC连接数据库,以及数据的增删改查操作。 4. **Lucene使用**:了解其核心概念,如Document、Field、Analyzer、IndexWriter、Directory、QueryParser等。 5. **文本处理**:...

Global site tag (gtag.js) - Google Analytics