Поиск FREETEXT - упорядочивает результаты по степени их соответствия - PullRequest
4 голосов
/ 14 июля 2011

Я пытаюсь реализовать полнотекстовый поиск. Я использую FREETEXT и получаю правильные результаты. Проблема заключается в упорядочении результатов. Если попытаться найти «автостоянка», результаты, соответствующие обоим этим словам, должны быть в начале, а затем совпадают только с одним из них. Как мне это сделать?

Спасибо

1 Ответ

9 голосов
/ 14 июля 2011

Используйте FREETEXTTABLE вместо FREETEXT.

FREETEXTTABLE вернет таблицу ключей с информацией о ранге. Вы можете отсортировать эту информацию о ранге, чтобы найти предметы, которые являются наиболее близкими.

БЕСПЛАТНАЯ документация Microsoft

Следующий пример показывает, как это работает:

SELECT
    t.TableID
    , t.TextData
    , ft.Rank
FROM
    Table t
    INNER JOIN FREETEXTTABLE ( Table , * , 'car park' ) ft ON ( t.TableID = ft.[Key] )
ORDER BY
    ft.Rank DESC
...