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