我已经使用MVC 2.0和Fluent NHibernate(出于某些原因而隐藏在存储库之后)构建了ASP.NET MVC应用程序。该应用程序代表了一个非常复杂的域,其中包含一些不同的对象,例如用户,消息,注释,文件和约会。

现在,我想实现全文搜索,这使用户只需输入搜索短语即可轻松找到所有类型的内容。当分别处理应用程序中所有类型的不同对象时,我现在必须将它们“放在一起”进行搜索。这意味着用户在不同类型之间没有区别,他只是输入“xyz”并希望获得列表中的结果,与消息混合的注释等。

选项1是创建一个搜索服务,该服务从不同的存储库中获取搜索结果并准备组合的输出(排序,分页等)。但是,当背后的数据增长(并且将会增长)时,这确实非常昂贵。

因此,我正在寻找替代解决方案。目前,我正在使用SQL Server2008。我发现的是lucene.net(http://lucene.apache.org/lucene.net/),但是我还没有花很多时间。

有什么建议?

最佳答案

我肯定会使用SQL全文功能。我确实知道某些内容可能在文件和其他结构中可用,但是即使那样,大多数数据也应该在后端,并且SQL在全文索引体系结构方面做得很好。

我建议您从SQL全文开始,并创建一个查询其他资源的小组件(如果需要)。我假设80%的可搜索内容将来自SQL Server。

以下是从SQL Server全文本开始的一些资源:

  • http://msdn.microsoft.com/en-us/library/ms142571.aspx
  • http://www.dotnetfunda.com/articles/article1019-implementing-fulltext-search-on-view-.aspx?sms_ss=dotnetshoutout
  • 10-07 19:53
    查看更多