2008-10-30 59 views
2

我有一个SQL数据库与多个表,我正在创建一个搜索功能。除了针对不同的表格有多个查询之外,是否有另外一种方式去执行所述搜索功能?创建搜索功能的最佳方式ASP.NET和SQL服务器


我应该补充一点,我的很多内容都是由数据库驱动的,使维护更容易。 Lucene不会为此工作,对吗?

回答

3

要考虑的不同方法:

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

+0

我在哪里可以了解有关Lucene的更多信息?我对此不熟悉。当然,谷歌当然是 – Anders 2008-10-30 15:16:00

0

既然你已经标记为Asp.net您要搜索您的网页,我想这个问题。在这种情况下,您可以使用索引服务器轻松执行自由文本搜索,以搜索生成的html和您设置的任何关键字。

正如Corey Trager所说,使用Lucene.NET也是一种选择。它具有快速且易于使用的良好声誉。

0

虽然其他答案提供了很好的建议,如使用Lucene,但我更喜欢使用自定义缓存方法。

因此,对于一个网站,我帮助创建,我们缓存可搜索的数据每隔几个小时,从多个表中,为一个简单的表,如柱:

  • URL
  • 条/页名
  • 主要关键词
  • 纯文字内容
  • 更新日期

然后我会写我的SQL语句来使用不同的函数来搜索这个字段来确定排名。