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