我知道这个问题已经被一次又一次地询问计算器和谷歌,但我发现,所有的答案不能满足我。大多数解决方案都假设整个索引可以存放在内存,那么我们可以把它存储要由Java序列化的磁盘。当需要的指数,我们必须加载整个索引到内存中。解决方案是这样的:solution 1,solution 2。但我们知道,这种假设并不总是正确的,所以我应该怎么做才能倒排文档索引存储到磁盘时,它不适合到内存?
我会很感激,如果你能给我在Java的解决方案。
我会尝试JDBM3这支持了树和散列收藏,唯一的要求是每个键或进入装入内存。
如果您有超大型项目,我建议存储每一个作为可成为存储器映射到提取数据的部分文件。在查找表中,可以存储密钥的文件名。 (或者使文件名的键)
若干年后的最新情况。
不再支持JDBM3。 MapDB是它的替代品。它有几个5月来存储数据(存储器映射,等...),将满足您的要求。