Lucene怎样获取Reader
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"Lucene怎样获取Reader"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!由于现
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
松江区技术软件开发机构整顿
学计算机软件开发好找活吗
武汉服务器机柜定制厂家
四川预付费软件开发
首都网络安全日那年设定
对中国网络技术的认可
民生领域软件开发企业有哪些
游戏王服务器
服务器要内网穿透吗
小米应用商店下原神是什么服务器
兴化工业网络技术诚信合作
软件开发fbi
电脑远程桌面服务器没反应
网络安全征集评奖
广州江南科友有软件开发吗
无线网络技术导论期末
网络安全排查问题
基本网络安全策略
数据库安全如何确保
数据库6个操作对象
宝山区企业网络技术承诺守信
pc开代理服务器
网络安全脱敏
计算机网络技术分理论和实操吗
大专生适合搞软件开发吗
以色列网络安全问题
上网dns服务器没有响应
山东首家网络技术有限公司
软件开发过程质量体系
服务器怎么删除rid1