我正在玩lucene和40GB的数据(~500M的元组,2个字段表现得像键 - 值)。我创建 - 一个惊喜 - 一个35 GB的索引,它不起作用。因此,我想创建一组较小的指标,但为此,我需要有关最大尺寸的信息。
答案 0 :(得分:2)
你使用什么文件系统?您是否完全确定已创建有效索引?你究竟如何索引数据?
从理论上讲,你不应该是一个长镜头。
<强>限制强>
在引用术语编号时,Lucene的当前实现使用Java int,这意味着任何单个索引段中的唯一术语的最大数量为2,147,483,648。从技术上讲,这不仅仅是对Lucene当前实现的索引文件格式的限制。
类似地,Lucene使用Java int来引用文档编号,索引文件格式使用Int32 on-disk来存储文档编号。这是索引文件格式和当前实现的限制。最终这些应该用UInt64值替换,或者更好的是,没有限制的VInt值。
http://lucene.apache.org/java/3_0_0/fileformats.html#Limitations
答案 1 :(得分:0)
您使用的是MMapDirectory还是32位虚拟机?如果是这样,地址空间不足以覆盖整个索引并且可能导致问题。在这种情况下,您需要使用SimpleFSDirectory或NIOFSDirectory。请注意,FSDirectory.open(File)等函数会返回FSDirectory,这可能是也可能不是MMapDirectory。