从WebApi读取Lucene FSDirectory

mi7gmzs6  于 2022-11-07  发布在  Lucene
关注(0)|答案(1)|浏览(124)

我正在使用FSDirectory来查询以前构建的(也是静态的)Lucene索引。
我想使用WebApi中的查询,它是无状态的,目前为接收到的每个调用示例化一个新的FSDirectory。
我不确定这是否是最好的方法,也不知道是否更好地池化FSDirectory。我希望框架已经涵盖了这个“问题”,但我是这个工具的新手,不知道如何继续。

9rygscc1

9rygscc11#

打开索引并使其预热可能会有很多开销,因为它需要构建缓存,例如FieldCache。此外,IndexReader类和IndexWriter类都是线程安全的。
因此,WebAPI的典型最佳实践或任何使用该材料的最佳实践是使用单个IndexReader或单个IndexWriter来服务所有线程,这可以通过您的代码轻松完成,因为这两个类都是线程安全的。
因此,通常当系统启动时,它会示例化其中一个,比如说IndexWriter,并将其放置在所有WebAPI调用都可以访问它的位置。它们可以使用IndexWriter进行写入,或使用从IndexWriter.GetReader()获得的读取器进行阅读。

相关问题