在Lucenet.Net中提交和优化文档的最佳策略?

时间:2013-08-28 05:11:46

标签: c# asp.net-mvc lucene.net

我对于与性能和最佳实践更好相关的内容存在疑问。

我的系统会这样做:

  1. 每个文档插入和更新,或
  2. 批量文件插入
  3. 正如我所知(在以前的系统中)#2是直截了当的:

    • 批量删除旧文档并添加新文档,最多10k docs,每个文档不超过20个字段
    • 提交
    • 优化

    但#1仍然让我感到困惑,因为有些客户会逐一添加文档。

    每次插入和更新时提交和优化的惩罚是什么?或者我可以忽略它,因为它每天只发生20次?

    Java版本为3.5,.net版本为3.03

    我刚看到a blog post,想知道社区有什么要说的。

1 个答案:

答案 0 :(得分:3)

我认为没有必要.Optimize()。 Lucene将自动处理段合并,您可以提供自己的逻辑来更改合并的计算方式。当10%的文档被标记为删除时,您可以编写一些合并掉已删除文档的内容。 Lucene的功能不需要合并掉每个被删除的文档。

当然,你最终会得到更多的段文件并且它们将使用文件描述符,但是你遇到过打开过多文件的问题吗?我尝试使用Google搜索来获取Windows服务器安装上的最大打开文件数,但答案从几千个到可用内存限制。