全文索引搜索没有返回预期的结果。索引现在已经生成,但没有找到一些真正基本的字符串。
此查询不返回名为"Other 11"
的用户。
SELECT KEY_TBL.RANK, FT_TBL.Firstname
FROM [user].[User] AS FT_TBL
INNER JOIN
CONTAINSTABLE([user].[User], Firstname,
'"Other*"') AS KEY_TBL
ON FT_TBL.UserId = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC
GO
如果我像这样重写查询,它将工作并返回名为"Other 11"
的用户。
SELECT KEY_TBL.RANK, FT_TBL.Firstname
FROM [user].[User] AS FT_TBL
INNER JOIN
CONTAINSTABLE([user].[User], Firstname,
'"Other 11"') AS KEY_TBL
ON FT_TBL.UserId = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC
GO
FREETEXTTABLE
和CONTAINS
也发生了类似的情况, predicate 搜索也不起作用。
这种行为的原因可能是什么?
1条答案
按热度按时间hvvq6cgz1#
其他和11是两个不同的词。
使用FTS predicate (如“Other*"),您将找到“Otherwise”,但不会找到“Other 11”
您需要使用NEAR predicate ,如下所示: