SQL Полнотекстовый поиск - Что определяет порядок, когда значения ранга равны - PullRequest
1 голос
/ 17 января 2020

FTS работает на SQL, и в большинстве сценариев ios кажется, что он работает как ожидалось. Простой пример запроса, который я использую:

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, чтобы объяснить поведение.

...