我怎么能存储在磁盘上的文件倒指数?

问题描述 投票:4回答:2

我知道这个问题已经被一次又一次地询问计算器和谷歌,但我发现,所有的答案不能满足我。大多数解决方案都假设整个索引可以存放在内存,那么我们可以把它存储要由Java序列化的磁盘。当需要的指数,我们必须加载整个索引到内存中。解决方案是这样的:solution 1solution 2。但我们知道,这种假设并不总是正确的,所以我应该怎么做才能倒排文档索引存储到磁盘时,它不适合到内存?

我会很感激,如果你能给我在Java的解决方案。

java data-structures inverted-index
2个回答
1
投票

我会尝试JDBM3这支持了树和散列收藏,唯一的要求是每个键或进入装入内存。

如果您有超大型项目,我建议存储每一个作为可成为存储器映射到提取数据的部分文件。在查找表中,可以存储密钥的文件名。 (或者使文件名的键)


0
投票

若干年后的最新情况。

不再支持JDBM3。 MapDB是它的替代品。它有几个5月来存储数据(存储器映射,等...),将满足您的要求。

© www.soinside.com 2019 - 2024. All rights reserved.