Linq(或 SQL):获取搜索查询并按最佳结果对其进行排序

发布于 2024-11-07 14:15:55 字数 404 浏览 0 评论 0原文

我想为我的网站创建一个搜索页面。逻辑是用户输入一些关键字,我应该搜索这些单词,然后按最佳匹配对结果进行排序。 IE: 用户输入:“MVC Microsoft WPF ASP.Net”。 我想显示包含最多匹配项的结果,例如:

最佳匹配:
学习 Microsoft ASP.Net MVC
如何在 Microsoft ASP.Net 中托管 WPF 表单

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

关键字匹配:
MVC
微软
WPF
网络应用程序

I want to create a search page for my website. The logic is the user enters some keywords and I should search those words then sort the result by best matches.
i.e:
The user enters: "MVC Microsoft WPF ASP.Net".
I want to show those results which contain most matches, such as:

Best Matches:

Learning Microsoft ASP.Net MVC
How to host a WPF form in Microsoft ASP.Net

Partial matches:

Microsoft MVC
Microsoft WPF
Microsoft ASP.Net
ASP.Net MVC

Keyword Matches:

MVC
Microsoft
WPF
ASP.Net

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

仅一夜美梦 2024-11-14 14:15:55

尝试 Lucene.NET,它默认按相关性对搜索结果进行排序

Try out Lucene.NET, it sorts search results by relevance by default

空名 2024-11-14 14:15:55

最后我找到了实际的解决方案。

这就是“全文索引”。

完整的教程在这里:

http://blog.sqlauthority.com/2008/09/05/sql-server-creating-full-text-catalog-and-index/

Finally I found the actual solution.

That's "FullText Index".

A complete tutorial is here:

http://blog.sqlauthority.com/2008/09/05/sql-server-creating-full-text-catalog-and-index/

烟柳画桥 2024-11-14 14:15:55

根据您搜索的内容/方式,一个简单的解决方案是构建您的网站,使其在 Google 上完全建立索引并利用 Google 自定义搜索 API

Depending on what / how you are searching, a simple solution is to build your website so it is fully indexed on Google and take advantage of Google Custom Search API.

吾家有女初长成 2024-11-14 14:15:55

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

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

Here's a basic strategy; it would require a stored proc:

  1. Split your keyword string on spaces, and pad with '%'s.
  2. For each search term, perform an insert-select to the same in-memory temp table. You'll get duplicate rows, one per record per "hit" on a search term.
  3. Select from this temp table each distinct result, with a count of the number of times that result appears in the temp table. This is your "relevance", by which you can sort.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文