我使用 SQL ServerFREETEXTTABLE
函数根据用户输入的单词(如搜索引擎)在表列中进行搜索,并返回最佳匹配行。
表格列将包含许多问题,用户将在文本框中输入一些内容(以任何顺序),并且根据他输入的内容,我需要自动填充搜索页面。
我已经习惯FREETEXTTABLE
了。但在某些情况下它不起作用。
如果我输入“what”,它不会返回任何内容。
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
但如果我输入“what is”,它会返回 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')