如何使用SQL SERVER 2008 R2的全文搜索在顶部获取最相关的数据 [英] How to get most relevant data at the top using Full Text Search of SQL SERVER 2008 R2

查看:57
本文介绍了如何使用SQL SERVER 2008 R2的全文搜索在顶部获取最相关的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用SQL Server 2008 R2的全文功能来查找基于用户输入的关键字的数据。我想在搜索结果的顶部返回最相关的数据。



例如:我在搜索表中有三个数据行,顺序如下



第1行:电脑

第2行:课程

第3行:电脑课程



每当用户搜索关键字计算机类时,我希望按以下顺序返回数据



结果1:电脑班

结果2:电脑

结果3:班级



但是我得到的数据如下我当前的查询



结果1:电脑

结果2:班级

结果3:电脑班



我正在使用以下查询



I am using Full-Text feature of SQL server 2008 R2 to find data based upon keyword entered by user. I would like to have most relevant data to be returned at the TOP of SEARCH RESULT.

For Example: I have three data row in search table in below order

Row 1: Computer
Row 2: Class
Row 3: Computer Class

Whenever User perform a search for keyword "Computer Class", I would like data to be returned in below order

Result 1: Computer Class
Result 2: Computer
Result 3: Class

But I get data in below order with my current query

Result 1: Computer
Result 2: Class
Result 3: Computer Class

I am using below query

Select * from Search_Table WHERE FREETEXT(Subjects_Column,'"COMPUTER CLASS"')





我怎么样?得到预期的结果?



How would I get the expected result?

推荐答案

不要使用 SELECT * 然后。



从您提供的示例中,您的查询应该是:



Don't use SELECT * then.

From the example you give, your query should be :

SELECT [Computer Class], [Computer], [Class] FROM [Search_Table] WHERE ...





这也意味着您必须从搜索文本构建查询。



注意: SELECT * 通常是一种不好的做法。



It also means than you have to construct your query from the search text.

Note : SELECT * is, in general, a bad practice.


这篇关于如何使用SQL SERVER 2008 R2的全文搜索在顶部获取最相关的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆