我有一个SQL数据库与多个表,我正在创建一个搜索功能。除了针对不同的表格有多个查询之外,是否有另外一种方式去执行所述搜索功能?创建搜索功能的最佳方式ASP.NET和SQL服务器
我应该补充一点,我的很多内容都是由数据库驱动的,使维护更容易。 Lucene不会为此工作,对吗?
我有一个SQL数据库与多个表,我正在创建一个搜索功能。除了针对不同的表格有多个查询之外,是否有另外一种方式去执行所述搜索功能?创建搜索功能的最佳方式ASP.NET和SQL服务器
我应该补充一点,我的很多内容都是由数据库驱动的,使维护更容易。 Lucene不会为此工作,对吗?
要考虑的不同方法:
1)像您所描述的那样预先打包多个查询。
2)根据用户输入的标准,动态组合的动态sql。
3)如果涉及到文本,基于SQL Server全文搜索或Lucene。
在我的开源应用程序BugTracker.NET,我做2和3(使用Lucene.NET)。
我记录我如何使用Lucene.NET这里: http://www.ifdefined.com/blog/post/2009/02/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx
既然你已经标记为Asp.net您要搜索您的网页,我想这个问题。在这种情况下,您可以使用索引服务器轻松执行自由文本搜索,以搜索生成的html和您设置的任何关键字。
正如Corey Trager所说,使用Lucene.NET也是一种选择。它具有快速且易于使用的良好声誉。
虽然其他答案提供了很好的建议,如使用Lucene,但我更喜欢使用自定义缓存方法。
因此,对于一个网站,我帮助创建,我们缓存可搜索的数据每隔几个小时,从多个表中,为一个简单的表,如柱:
然后我会写我的SQL语句来使用不同的函数来搜索这个字段来确定排名。
你可能想看看这篇文章,我写了关于在C#中编写全文查询的问题,但它很容易移植,或者只是把它放在一个库中,然后使用它。
我在哪里可以了解有关Lucene的更多信息?我对此不熟悉。当然,谷歌当然是 – Anders 2008-10-30 15:16:00