【问题标题】:How does one store DocValues in memory/disk?如何将 DocValues 存储在内存/磁盘中?
【发布时间】:2014-06-10 19:58:26
【问题描述】:

要将数字 DocValues 存储在 lucene 中,我使用 NumericDocValuesField

值存储在哪里?在内存中还是在磁盘上?

如果它在内存中,那么它们如何存储在磁盘上?反之亦然。

我使用的是 lucene 4.6.0。

【问题讨论】:

    标签: lucene


    【解决方案1】:

    值存储在哪里?在内存中还是在磁盘上?

    取决于您使用的Directory

    如果您使用FSDirectory.open(File),那么它将被写入磁盘,如果您使用RAMDirectory,那么索引将与所有字段(数字或非数字)一起保存在内存中。

    只需使用相关目录实现即可在所需媒体上获取数据。

    【讨论】:

    • 好的。另外,我目前正在使用 MultiDocValues.getNumericDocValues() 来获取 DocValues。我希望将 DocValues 加载到内存中。无论索引时使用的目录如何,都可以使用 RAMDirectory 吗?
    • 不,您需要将持久索引加载到内存中。但是,对于您的问题,我建议您考虑MMapDirectory,它很好地结合了两个世界。
    • 我会看看 MMapDirectory。谢谢!
    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 2012-05-13
    • 2010-12-29
    • 2011-10-04
    • 2011-06-08
    • 1970-01-01
    • 2013-12-26
    • 2012-08-02
    相关资源
    最近更新 更多