lucene笔记____IndexReader和IndexWriter注意事项
2013-05-16 00:08
417 查看
在lucenne的使用中IndexReader和IndexWriter的打开和关闭都是非常耗时的,特别是IndexReader的操作,
(IndexReader 将磁盘上的索引信息读入到内存)
所以在使用时我们一般把IndexReader创建成单实例的,以减少消耗。
看下面的这个例子:
此时reader我们就不关闭,在使用时检查reader是不是存在,那么我们又看到一个函数openIfChanged
看文档的解释:
如果当索引打开时,发现reader有了改变就返回一个新的reader,否则返回null,所以在上面的这个方法中我们使用openIfChanged
来判断是不是原来的reader。
(IndexReader 将磁盘上的索引信息读入到内存)
所以在使用时我们一般把IndexReader创建成单实例的,以减少消耗。
看下面的这个例子:
private IndexReader reader; public IndexSearcher getSearcher(Directory directory) { try { if(reader==null) { reader = IndexReader.open(directory); } else { IndexReader tr = IndexReader.openIfChanged(reader); if(tr!=null) { reader.close(); reader = tr; } } return new IndexSearcher(reader); } catch (CorruptIndexException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }
此时reader我们就不关闭,在使用时检查reader是不是存在,那么我们又看到一个函数openIfChanged
看文档的解释:
如果当索引打开时,发现reader有了改变就返回一个新的reader,否则返回null,所以在上面的这个方法中我们使用openIfChanged
来判断是不是原来的reader。
相关文章推荐
- 7、学习Lucene3.5之IndexReader和IndexWriter注意事项
- lucene3.0_和IndexWriter有关的几个参数设置及重建索引注意事项
- Lucene IndexReader,IndexWriter,IndexSearcher 缓存应用
- Lucene中删除索引是用IndexWriter还是用IndexReader
- lucene3.0_IndexWriter基础使用及注意事项
- lucene管理IndexReader和IndexWriter的最佳实践
- Lucene-Field.Store的Field.Index属性笔记
- lucene使用教程5 --常用类的对象之IndexReader
- 开发的一系列注意事项笔记(持续更新)
- python中elif和which简单介绍及注意事项(含笔记)
- lucene索引_加权操作、对日期和数字进行索引、IndexReader的设计
- GreenDAO 学习笔记-小白教程(三)数据库升级及注意事项
- IndexReader和IndexWriter的生命周期
- 【java基础知识(学习笔记)】--方法的重载注意事项
- JAVA_WEB项目之Lucene检索框架中的IndexWriter、IndexSearch优化
- JUnit 软检测试笔记(注意事项)
- Delphi 2010学习笔记(16)---流程控制的注意事项---2011-01-21
- Java基础知识强化之IO流笔记11:递归之递归概述和注意事项
- 【XEN学习笔记】XEN中ACM模块编译注意事项
- 个人笔记(孔浩Maven视频教程)——02.Maven安装的注意事项