向 Lucene.Net 数据库添加许多记录时,数据文件的大小会缓慢增加。这会在具有许多 Lucene 数据库并经常更改它们的系统上造成大量磁盘碎片,这是不希望的副作用。
我的问题是:有没有办法为 Lucene.Net DB 预先分配硬盘空间以减少碎片?
如果重要的话,我正在用 C# 编写代码。
向 Lucene.Net 数据库添加许多记录时,数据文件的大小会缓慢增加。这会在具有许多 Lucene 数据库并经常更改它们的系统上造成大量磁盘碎片,这是不希望的副作用。
我的问题是:有没有办法为 Lucene.Net DB 预先分配硬盘空间以减少碎片?
如果重要的话,我正在用 C# 编写代码。
您可以构建一个自定义目录实现,将数据存储在一个更大的预分配文件中。
已经有一个名为big-dir的项目为 Lucene(Java 版本)执行此操作,您可以将其移植到 C#。根据他们的页面,它处于早期 alpha 阶段,但他们在文件容器中创建虚拟文件系统的想法对您来说似乎是一个可行的解决方案。