Я использовал функцию SQL Server FREETEXTTABLE
для поиска в столбце таблицы на основе введенных пользователем слов, таких как поисковая система, и возвращает наилучшие совпадающие строки.SQL Server FREETEXTTABLE не возвращает результат
Столбец таблицы будет содержать много вопросов, и пользователь будет вводить что-то в текстовом поле (в любом порядке) и в зависимости от того, что он набрал. Мне нужно автоматически заполнить страницу поиска.
Я использовал FREETEXTTABLE
для этого. Но в некоторых случаях это не работает.
Если я набираю «что», он ничего не возвращает.
DECLARE @query VARCHAR(50) = 'what'
SELECT TOP 10 Questions
FROM tblQuestion tq
INNER JOIN FREETEXTTABLE(tblQuestion, Questions, @query) ft ON (tq.ID = ft.[Key])
ORDER BY ft.Rank DESC
, но если я напечатаю «что есть», он возвращает 10 записей.
DECLARE @query VARCHAR(50) = 'what is'
SELECT TOP 10 Questions
FROM tblQuestion tq
INNER JOIN FREETEXTTABLE(tblQuestion, Questions, @query) ft ON (tq.ID = ft.[Key])
ORDER BY ft.Rank DESC
Я также попытался CONTAINS
и FREETEXT
.
SELECT *
FROM tblQuestion
WHERE FREETEXT (Questions, 'what')
Даже этот запрос возвратил нулевые строки.
Но этот ниже запрос возвратил несколько строк.
SELECT *
FROM tblQuestion
WHERE FREETEXT (Questions, 'what is')
Эй Paweł DYL спасибо человек. Я реализовал решение, данное вами, его работа абсолютно прекрасна. –