我用MVC 2.0和Fluent NHibernate构建了一个ASP.NET MVC应用程序(由于某些原因隐藏在存储库后面).该应用程序代表了一个非常复杂的域,其中包含一些不同的对象,如用户,消息,注释,文件和约会.
现在,我想实现全文搜索,使用户只需输入搜索短语即可轻松查找所有类型的内容.当单独处理应用程序中所有类型的不同对象时,我现在必须将它们“放在一起”进行搜索.这意味着用户不区分不同类型,他只输入“xyz”并希望将结果列入列表,评论与消息混合等.
选项1是创建一个搜索服务,该服务从不同的存储库中提取搜索结果并准备组合输出(排序,分页等).但是,当数据背后的增长(并且会增长)时,这真的非常昂贵.
所以我正在寻找替代解决方案.目前我正在使用sql Server 2008.我发现的是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