Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道这个问题在 stackoverflow 和 google 中被一次又一次地问到,但我发现所有的答案都不能让我满意。大多数解决方案都假设整个索引可以放在内存中,然后我们可以通过Java序列化将其存储到磁盘中。当需要索引时,我们必须将整个索引加载到内存中。像这样的解决方案: 解决方案 1, 解决方案 2。但是我们知道,这个假设并不总是正确的,那么当倒排文档索引不适合内存时,我应该怎么做才能将它存储到磁盘呢?
如果您能用 Java 给我解决方案,我将不胜感激。
我会尝试JDBM3这支持树和哈希集合,唯一的要求是每个键或条目都适合内存。
如果您有超大条目,我建议将每个条目存储为文件,这些文件可以进行内存映射以提取部分数据。在查找表中,您可以存储文件名的键。(或将文件命名为密钥)
几年后的更新。
不再支持 JDBM3。 MapDB是它的替代品。它有几种可能存储满足您要求的数据(内存映射等)。