lucene.net可以在文档中处理的索引的最大数量是多少

时间:2014-01-28 01:32:23

标签: c# lucene lucene.net

Lucene没有记录存储引擎的限制。有谁知道每个文档允许的最大索引数?

2 个答案:

答案 0 :(得分:1)

正如所有类型的索引(Lucene,RDBMS或其他)所建议的那样,建议将最低可能的字段数量编入索引,因为它会使索引大小保持较小并减少从索引读取的运行时开销。 / p>

也就是说,字段数限制受到系统资源的限制。字段由其名称(区分大小写)标识,而不是由任意数字ID标识,这通常成为这些系统中的限制因素。在没有像Lucene那样严格的最大字段名称长度的系统中,理论字段数限制也很难预测。

我亲自使用了超过200个分析字段,超过20亿个文档没有问题。与此同时,同一索引的性能并不是我在中型Azure VM上使用较小索引所期望的。

答案 1 :(得分:1)

当引用术语编号时,Lucene的当前实现使用Java int来保存术语索引,这意味着任何单个索引段中的唯一术语的最大数量是术语索引间隔的约21亿倍(默认为128)=〜 2740亿。从技术上讲,这不仅仅是对Lucene当前实现的索引文件格式的限制。

类似地,Lucene使用Java int来引用文档编号,索引文件格式使用Int32 on-disk来存储文档编号。这是索引文件格式和当前实现的限制。最终这些应该用UInt64值替换,或者更好的是,没有限制的VInt值。

http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/codecs/lucene40/package-summary.html#Limitations