C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、IndexReader性能分析

  IndexReader完成了打开所有索引文件和提供底层reader API等繁重的工作,而IndexSearch则要简单得多。由于打开一个IndexReader需要较大的系统开销,因此最好是在所有搜索期间都重复使用一个IndexReader实例,只有在必要的时候才打开新的IndexReader。

  另外,还可以从索引目录中直接创建IndexSearcher,这种情况下,系统会在后台建立自己私有的IndexReader,如果此时关闭Searcher,那么它同事也会关闭自己的IndexReader。因为IndexReader是由IndexSearcher打开的。

  在创建IndexReader时,它会搜索已有的索引快照。如果你需要搜索索引中变更信息,那么必须打开一个新的reader。所幸的是,IndexReader.Reopen方法是一个获取新IndexReader的有效手段,重启的IndexReader能在耗费较少系统资源的情况下使用当前reader来获取索引中所有的变更信息。

posted on 2014-04-10 17:55  逆心  阅读(1439)  评论(3编辑  收藏  举报