如何使用SQL SERVER 2008 R2的全文搜索在顶部获取最相关的数据 [英] How to get most relevant data at the top using Full Text Search of 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 useSELECT *
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屋!