标签: java data-structures inverted-index
我知道这个问题在stackoverflow和google中一再被问到,但我发现所有答案都无法满足我。大多数解决方案都假设整个索引可以适合内存,然后我们可以通过Java序列化将它存储到磁盘。当需要索引时,我们必须将整个索引加载到内存中。这样的解决方案: solution 1, solution 2。但是正如我们所知,这种假设并不总是正确的,那么当它不适合内存时,如何将反转的文档索引存储到磁盘中呢?
如果你能用Java给我解决方案,我将不胜感激。
答案 0 :(得分:1)
我会尝试JDBM3这支持树和哈希集合,唯一的要求是每个键或条目都适合内存。
如果您有超大条目,我建议将每个条目存储为可以进行内存映射的文件以提取部分数据。在查找表中,您可以将密钥存储到文件名。 (或者让文件命名为密钥)
答案 1 :(得分:0)
几年后的更新。
不再支持JDBM3。 MapDB是它的替代品。 它可以存储满足您要求的数据(内存映射等)。