我对于与性能和最佳实践更好相关的内容存在疑问。
我的系统会这样做:
正如我所知(在以前的系统中)#2是直截了当的:
但#1仍然让我感到困惑,因为有些客户会逐一添加文档。
每次插入和更新时提交和优化的惩罚是什么?或者我可以忽略它,因为它每天只发生20次?
Java版本为3.5,.net版本为3.03
我刚看到a blog post,想知道社区有什么要说的。
答案 0 :(得分:3)
我认为没有必要.Optimize()。 Lucene将自动处理段合并,您可以提供自己的逻辑来更改合并的计算方式。当10%的文档被标记为删除时,您可以编写一些合并掉已删除文档的内容。 Lucene的功能不需要合并掉每个被删除的文档。
当然,你最终会得到更多的段文件并且它们将使用文件描述符,但是你遇到过打开过多文件的问题吗?我尝试使用Google搜索来获取Windows服务器安装上的最大打开文件数,但答案从几千个到可用内存限制。