是否有任何建议将Lucene.NET集成到ASP.NET MVC应用程序中?

Kie*_*ron 15 c# lucene.net asp.net-mvc-3

我想知道是否有任何建议,最佳实践或顶级技巧将基于Lucene.NET的搜索集成到ASP.NET MVC Web应用程序中?

我在各个地方阅读(或认为我已阅读)的内容包括以下内容:

  • 其中IndexWriter,很多IndexReader小号
  • 更新索引后,重置/重新初始化IndexReaders

在开始之前我还应该阅读其他有用的提示或资源吗?

谢谢,
Kieron

Kan*_*ane 6

以下是我的提示(没有特别的顺序):

  • 选择最合适的锁定机制.
  • 在写入索引时,使用SetRAMBufferSizeMB减少磁盘I/O开销.
  • 不要过度使用SetMaxBufferedDocs属性.
  • 使用搜索命中(TopDocs和ScoreDoc [])对象来检索索引搜索结果.
  • 索引编写是一项昂贵的操作,因此请谨慎使用.
  • 知道您将要编制索引的数据,因为如果某些数据类型(IE,日期)没有一致地存储,则很难搜索.

我以前的一个项目中的一些问题是:

  • 我不得不使用BooleanQuery来执行传统的AND操作来搜索多个字段.
  • Lucene中没有UPDATE功能,因此需要删除并重新添加文档.
  • 您无法在标记化字段上排序/ OrderBy.

我建议查看RavenDb的源代码,因为它是在Lucene之上构建的,并使用了许多最佳实践.