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

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

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

相关文章:

  • 2021-09-22
  • 2021-12-05
  • 2021-09-04
  • 2021-07-06
  • 2021-10-26
  • 2021-08-03
  • 2021-05-31
猜你喜欢
  • 2021-07-09
  • 2022-01-04
  • 2021-11-22
  • 2021-09-02
  • 2021-10-09
  • 2021-10-15
相关资源
相似解决方案