使用Lucene.NET搜索过滤器

时间:2009-10-21 21:18:18

标签: c# .net full-text-search lucene lucene.net

我正在使用Lucene.Net创建一个网站来搜索以PDF格式存储的书籍,文章等。例如,我需要能够根据作者姓名过滤搜索结果。这可以用Lucene完成吗?或者我是否需要DB来存储每个文档的过滤字段?

另外,索引文档的最佳方法是什么?我将有大约50个文档开始,并定期我将不得不添加一堆文档到索引 - 可能是通过Web表单。我应该使用DB来存储文档路径吗?

感谢。

2 个答案:

答案 0 :(得分:2)

Lucene有几种不同的分析仪可以消除噪音并进行“阻塞”,这对您想要进行全文搜索很有帮助,但您仍然需要将PDF本身存储在某处。 Lucene.Net很乐意在文件系统上构建一个索引,你可以在它构建的Document中添加一个字段,称为“PATH”,其中包含文档的路径。

答案 1 :(得分:2)

以下列出了您需要做什么IMO:

  1. 从PDF中提取原始文字 - 请参阅this question,为此目的推荐iTextSharp
  2. 对于每个PDF文档,创建一个包含多个字段的Lucene.net文档:作者,标题,文档文本以及您要搜索的任何内容。建议每个文档也有唯一的id字段。我建议您还存储一个包含原始PDF文档路径的字段。
  3. 索引所有文档后,您将拥有一个Lucene索引,您可以按字段搜索。
  4. 您可以通过重复步骤2来添加新文档。离线执行此操作更容易 - 增量更新很难。