如何将倒排文档索引存储在磁盘上?

时间:2012-03-15 12:46:20

标签: java data-structures inverted-index

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

几年后的更新。

不再支持JDBM3。 MapDB是它的替代品。 它可以存储满足您要求的数据(内存映射等)。