`

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,有些了解,写成小demo的形式和大家共享,完全自己写的,测试可用

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

    NULL 博文链接:https://370371029-qq-com.iteye.com/blog/1832474

    博客系统(搜索利用Lucene)

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

    ES-ElasticSearch-head-chorm插件.zip

    并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。...

    springboot权限管理系统源码.zip

    * 系统用户,角色,权限增删改查,权限分配,权限配色 * 文件上传可自由选择本地存储,七牛云存储,阿里云存储 * 系统字典 * 配置网站基本信息,包括博客数据限制 * 查看系统关键操作的日志(可在系统后台...

    HubbleDotNet 全文检索

    HubbleDotNet 设计了较为完善的并发控制程序,数据的增删改查可以多线程同时并发进行,没有任何冲突。HubbleDotNet 还进行 了缓存和内存管理设计,可以帮助用户最大限度的提高查询的效率。HubbleDotNet 力争在未来的...

    Hubble.net全文搜索源码

    Hubble.net 设计了较为完善的并发控制程序,数据的增删改查可以多线程同时并发进行,没有任何冲突。Hubble.net 还进行了缓存和内存管理设计,可以帮助用户最大限度的提高查询的效率。Hubble.net 力争在未来的几年内...

    ElasticSearch分布式全文检索入门视频教程

    05_Elasticsearch 单模式下API的增删改查操作 06_Elasticsearch 批量获取mget 07_Elasticsearch 批量操作bulk 08_Elasticsearch 版本控制version 09_Elasticsearch 如何做映射mapping 10_Elasticsearch 基本查询 11_...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 oracle版本_spring3.0

    系统用户:对各个基本的组会员增删改查,单发、群发邮件短信,导入导出excel表格,批量删除 3. 会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息等资料 4. 菜单管理:增删改查菜单 ztree(自定义...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 mysql版本_spring3.0

    系统用户:对各个基本的组会员增删改查,单发、群发邮件短信,导入导出excel表格,批量删除 3. 会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息等资料 4. 菜单管理:增删改查菜单 ztree(自定义...

    ElasticSearch入门(一)单节点初体验

    ES作为MySQL等关系型数据库的LIKE功能出现(当然这只是简单的类比),基于Apache的Lucene实现,提供RESTful风格的操作(增删改查)。随着ES生态的不断繁荣,结合ELK(ElasticSearch, Logstash, Kibana

    百度地图开发java源码-discussion:SpringBootMybatisRedis开发脚手架平台,浏览器支持IE8以上版本

    系统用户,角色,权限增删改查,权限分配,权限配色 系统字典 配置网站基本信息,包括博客数据限制 查看系统关键操作的日志(可在系统后台自动定制需要监控的模板) 在线新增数据库并直接生成 前,后台基本源码...

    SpringBoot + Mysql 博客管理系统【前端+后台】.rar

    * 系统用户,角色,权限增删改查,权限分配,权限配色 * 文件上传可自由选择本地存储,七牛云存储,阿里云存储 * 系统字典 * 配置网站基本信息,包括博客数据限制 * 查看系统关键操作的日志(可在系统...

Global site tag (gtag.js) - Google Analytics