Я хочу выполнить поиск с помощью оператора CONTAINS (чтобы выбрать строки, которые точно соответствуют), а также выполнить поиск с помощью FREETEXT, чтобы сопоставить отдельные слова в поисковой фразе.
Основная цель - order результаты таким образом, что точные совпадения являются первыми .
Вот пример кода, который я пробовал, но результаты получают doubled :
SELECT TOP 100
TreeID AS ObjectID,
PageTitle AS Title,
SUBSTRING(PlainPageContent, 1, 256) AS [Description],
1 AS Priority
FROM TreeTexts
WHERE FREETEXT((PlainPageContent, MenuTitle, PageTitle, WindowTitle), @SearchWord)
AND LanguageID = @LangID
UNION
SELECT TOP 100
TreeID AS ObjectID,
PageTitle AS Title,
SUBSTRING(PlainPageContent, 1, 256) AS [Description],
0 AS Priority
FROM TreeTexts
WHERE CONTAINS((PlainPageContent, MenuTitle, PageTitle, WindowTitle), '"'+@SearchWord+'"')
AND LanguageID = @LangID
ORDER BY Priority
Возможно, это не лучшая команда выбора для того, что мне нужно, поэтому не могли бы вы привести меня на правильный путь.
Спасибо