2

我有一个支持 SQL Server 数据库的 ASP.NET 站点。我一直在使用 Lucene.NET 来索引和搜索数据库。我将分面搜索导航添加到结果页面(分面是分层类别树)。我昨天要求确保我使用了正确的刻面技术。到目前为止,我得到的只是使用 Solr 的建议,但 Solr 做了很多我不需要的事情。

我真的很想从任何熟悉 Solr 源代码的人那里知道 Solr 的 facet 处理是否与Bert Willems 在这里描述的有很大不同。基本上,每个方面都有一个 Lucene 过滤器,从中获取位数组,然后计算数组中的设置位。

我在想,既然我的开始是分层的,我应该能够很好地优化它,但我担心我可能严重低估了这种设计对搜索性能的影响。如果 Solr 没有更快,我不会通过使用它来获得任何东西。

4

1 回答 1

3

我建议使用 Solr 创建一个原型项目来模拟您的构面需求,并将其与 Lucene.net 进行基准测试。

尽管Solr中的 faceting 非常优化(并且一直在获得新的优化,例如并行的 per-segment faceting 方法),但在使用 Solr 时会有一些开销,例如网络往返和响应解析。

如果您的代码已经实现了 Lucene.NET,运行良好并且您不需要 Solr 的任何附加功能,则无需切换到 Solr。但也要考虑,如果您选择 Solr,您将免费获得每个新版本的刻面性能提升。

于 2010-10-19T20:59:48.623 回答