2009-10-29 58 views
3

我正在构建一个简单的搜索表单为我们的支持票数据库使用Lucene.Net,我想添加的能力来过滤,例如筛选结果票状态。什么是最好的方法来做到这一点?至于我可以看到我有三种选择:如何结合全文搜索和过滤与lucene.Net

  1. 包括使用Lucene.Net
  2. 从Lucene的得到搜索结果后,应用过滤器我想在我的索引来过滤所有条款,并过滤器通过转到数据库来筛选出Lucene返回的结果对过滤器无效。

选项1将扩大我的索引的大小越来越多的每个额外的领域,我想过滤。另一方面,选项2将夸大我的索引大小,在添加新字段进行过滤时会导致问题,并且还会使分页更加棘手。

这里有明显的选择,还是两者都可以接受? (和是否有第三个选择,我不能看?)

回答

2

我就不会担心指数的大小:-)

我们去选择1所有的时间,从来没有Lucene的外部过滤数据。净。您最终可能需要在lucene.net中检索大量匹配,然后才能在数据库中筛选之后获得“true”匹配数 - 它可能还需要多次往返数据库。

我们目前在我们的150K文档中平均有大约100个字段,并且工作得非常好。