我有 Lucene .Net 索引(目前正在运行 2.9.2 版,但我将很快升级到新的 3.0.3)。
对于搜索性能问题,我需要创建从 DocId 到 Application Id 的内存映射 - 所以我不需要从索引中获取存储的值(搜索结果可能会返回数千个文档......)。由于我有很多索引迭代,我需要多次更新\重新创建这个映射 - 所以我需要快速完成。
我看到这篇很棒的文章试图解决这个问题,并通过使用 Lucene 的FieldCache
机制检索结果或TermPositions
在唯一索引字段上使用枚举来比较时间。正如作者所说,确实使用 Lucene 创建映射TermPositions
要快得多FieldCache
,但理解为什么对我来说非常重要。有人可以向我解释一下两者TermPositions
在FieldCache
幕后做什么吗?