2011-05-16 38 views
3

我想为我的网站创建一个搜索页面。逻辑是用户输入一些关键字,我应该搜索这些词,然后按最佳匹配对结果进行排序。 例如: 用户输入:“MVC Microsoft WPF ASP.Net”。 我想告诉那些包含最匹配的,如结果:Linq(或SQL):获取搜索查询并按最佳结果排序

最佳匹配:
学习微软ASP.Net MVC
如何在Microsoft ASP.Net

举办形式WPF

部分匹配:
微软MVC
微软WPF
微软ASP.Net
ASP.Net MVC

关键字匹配:
MVC
微软
WPF
ASP.Net

+0

你可以张贴一些代码/您遇到的问题? – Avitus 2011-05-16 19:54:51

+0

你在使用什么数据库服务器? – 2011-05-16 20:08:08

回答

0

根据您搜索的内容/方式,一个简单的解决方案是构建您的网站,以便在Google上完全索引,并利用Google Custom Search API

0

这是一个基本的策略;它需要一个存储过程:

  1. 将空格中的关键字字符串拆分,并填充'%'。
  2. 对于每个搜索词,对相同的内存中临时表执行插入选择。您会得到重复的行,每搜索一次“搜索”时每条记录一个记录。
  3. 从该临时表中选择每个不同的结果,并计算结果出现在临时表中的次数。这是您的“相关性”,您可以通过它进行排序。
+0

这个想法很好,但我不知道如何计算每个独特结果的数量,你有什么想法吗? – Alireza 2011-05-16 20:29:27

+0

使用分组功能可以工作。例如'SELECT result,Count(result)FROM #MyTempTable GroupBy result;' – IndigoDelta 2011-05-18 13:45:39