首页 > 解决方案 > SQL全文搜索 - 当等级值相等时确定顺序的因素

问题描述

我在 SQL 上运行 FTS,在大多数情况下,它似乎按预期工作。我正在使用的查询的一个简单示例:

select 
    a.ArticleId, a.Title, a.[Rank]  
from 
    Articles a inner join 
    freetexttabale(Articles, Title, @searchTerm) as rankedTitle 
        on rankedTitle.[key] = a.ArticleId
order by 
    rankedTitle.[rank] desc 

结果示例:

+===========+===============================+======+  
| ArticleID | Title                         | Rank |  
+===========+===============================+======+  
| 232       | Notifications budget guidance | 212  |  
+-----------+-------------------------------+------+  
| 65        | Notifications                 | 212  |  
+-----------+-------------------------------+------+  

在我看来,由于这两个项目的排名都是 212,我会认为第 65 条(第二条)应该首先出现。那么问题来了,SQL FTS 在这些情况下会做什么呢?

我知道排名值可能会从一个查询更改为下一个查询,但这些查询非常一致,很难在 Microsoft 的网站上找到任何相关信息来解释这种行为。

标签: sql-servertsqlfull-text-search

解决方案


推荐阅读