Lucene怎样获取Reader
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,本篇内容介绍了"Lucene怎样获取Reader"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!由于现
千家信息网最后更新 2024年11月18日Lucene怎样获取Reader
本篇内容介绍了"Lucene怎样获取Reader"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
由于现在网络搜索都希望达到实时搜索的效果,用户上传文章后,希望立即在搜索结果中可见,这就要求我们必须使用Lucene的准实时搜索功能,使我们在不影响性能的情况下达到近实时搜索的效果。然而准实时搜索API在4.x版本中已经与3.x版本完全不同了。
首先来看怎样获取准实时搜索的Reader实例,大家都知道,由于性能等方面原因,基于Lucene的应用一般都采用共享Lucene的Writer和Reader及Searcher的方案,我们这里也不例外:
indexPathname = "D:/aproject/xincaigu/work/index"; analyzer = new MMSegAnalyzer(); IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_41, analyzer); iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); try { indexDir = FSDirectory.open(new File(indexPathname)); writer = new IndexWriter(indexDir, iwc); // writer和reader整个程序共用 reader = DirectoryReader.open(writer, true); //reader = writer.getReader(); } catch (CorruptIndexException e) { } catch (LockObtainFailedException e) { } catch (IOException e) { }
熟悉Lucene 3.x的朋友一定注意到了,获取准实时搜索所用的Reader已经改用DirectoryReader.open方法,而不是3.x当中的writer.getReader()方法了。
同样,在3.x中,为了可以看到刚刚添加的新文章,Reader需要进行reopen操作,这是一种节省资源的方式,可以获取新加入索引的文章,而不需要将改动保存到磁盘上,然后重新打开索引的方式来进行了。但是reopne在4.x也被新API所取代,具体的用法如下所示:
try { IndexReader newReader = DirectoryReader.openIfChanged((DirectoryReader)reader, writer, false);//reader.reopen(); // 读入新增加的增量索引内容,满足实时索引需求 if (newReader != null) { reader.close(); reader = newReader; } searcher = new IndexSearcher(reader); } catch (CorruptIndexException e) { } catch (IOException e) {
这里首先利用新APIDirctoryReader.openIfChanged来获取Reader,如果有新内容,则返回新的Reader,这时我们需要关闭老的Reader。
"Lucene怎样获取Reader"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
搜索
实时
文章
索引
内容
性能
情况
效果
方式
方法
更多
版本
知识
不同
实用
学有所成
接下来
功能
原因
困境
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
区域网络安全管理工作
成都市燃诺软件开发有限公司招聘
成渝国家网络安全园区范围
视频通信网络技术
数据库简单窗体查询制作
网络安全的认识的文章
鸿蒙3.0的软件开发了多少
服务器资产管理工具
梦幻古龙连接账号数据库失败
信息网络安全生产制度
2到4个字的服务器名
信息化发展和网络安全
IEL是引文数据库
北京微众生活网络技术有限
计算机网络技术适合女生学
2017网络安全宣传策划
存储服务器外接硬盘
微信小程序界面如何加载数据库
宿州oa管理软件开发费用
以下哪个不属于数据库完整性范围
数据库和电子商务结合
网络安全风险概述编制模板
凯特网络技术
sql数据库停电后打不开
数据库外码谁参照谁
泰拉瑞亚如何创建一个服务器
数据库 学习 教程
activiti 数据库
2018全国网络安全员竞赛视频
安捷鸽钟服务器