Lucene RAMDirectory 已弃用-无论如何如何保留仅目录 RAM?
Posted
技术标签:
【中文标题】Lucene RAMDirectory 已弃用-无论如何如何保留仅目录 RAM?【英文标题】:Lucene RAMDirectory deprecated - how to keep Directory RAM-only anyway? 【发布时间】:2021-07-07 06:40:55 【问题描述】:我目前正在使用 org.apache.lucene.store.RAMDirectory
类来实现基于 RAM 的快速索引,而无需硬盘写入权限。 RAM 大小和持久性不是限制因素。但是,RAMDirectory
被标记为已弃用,并且根据其API 似乎对于大型索引也存在问题。
所以我的问题是,对于已弃用的 RAMDirectory
,仅 RAM 的替代方案是什么?
在硬盘上写任何东西对我来说都是不可能的(只读),而且在我自己的系统上似乎也有点慢。我正在考虑将FSDDirectory
与 RAMDisk 一起使用,但找不到仅使用 java / jar 创建所述 RAMDisk 的方法(再次需要更改系统)。
【问题讨论】:
【参考方案1】:ByteBuffersDirectory 是 RAMDirectory
的替代品。
下面的图表清楚地说明了为什么RAMDiretory
被贬值然后被删除。 BBDIR 是ByteBuffersDirectory
,RAMDIR 是RAMDirectory
。
Dawid Weiss 绘制的图表。来源:LUCENE-8438 并在 Apache 2.0 许可下显示。 .
【讨论】:
我并不是在为 RAMDirectory 争论,恰恰相反,我正在寻找替代品,但无法找到没有磁盘写入权限的替代品。非常感谢,这正是我想要的!【参考方案2】:你也可以只创建一个ramdisk
【讨论】:
如果你有办法从我运行的 java 程序中创建一个 ramdisk,我会全力以赴。如果它是关于创建具有额外安装和系统访问权限的 ramdisk,我已经特别提到那不是一个选项。 哦。我太快了。不过好像有:***.com/questions/4428217/… 谢谢,这个链接很有帮助 - 似乎没有办法(如,没有非常广泛的自己的补充)只有 java 的 ramdisk。以上是关于Lucene RAMDirectory 已弃用-无论如何如何保留仅目录 RAM?的主要内容,如果未能解决你的问题,请参考以下文章
已弃用:指令 'allow_url_include' 在第 0 行的 Unknown 中已弃用
Modernizr.load 已弃用。 Yepnope.js 已弃用。怎么办?
UIAlertView 已弃用:首先在 iOS 9.0 中弃用 - UIAlertView 已弃用。将 UIAlertController 与首选样式一起使用