Я использовал функцию 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')