如何将反向文档索引存储在磁盘上?

jer*_*jtu 5 java inverted-index data-structures

我知道这个问题已经在stackoverflow和google中一次又一次被问到,但是我发现所有答案都无法满足我。大多数解决方案都假定整个索引都可以容纳在内存中,然后我们可以通过Java序列化将其存储到磁盘中。当需要索引时,我们必须将整个索引加载到内存中。像这样的解决方案: 解决方案1解决方案2。但是,正如我们所知道的,这种假设并不总是正确的,那么当倒排文档索引不适合内存时,我应该怎么做呢?

如果您能用Java给我解决方案,我将不胜感激。

Pet*_*rey 1

我会尝试JDBM3,它支持树和哈希集合,唯一的要求是每个键或条目都适合内存。

如果您有超大条目,我建议将每个条目存储为文件,这些文件可以进行内存映射以提取部分数据。在查找表中,您可以存储文件名的键。(或者将文件命名为键)