SQL Server全文索引搜索不起作用

mm9b1k5b  于 2023-01-20  发布在  SQL Server
关注(0)|答案(1)|浏览(285)

全文索引搜索没有返回预期的结果。索引现在已经生成,但没有找到一些真正基本的字符串。
此查询不返回名为"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

FREETEXTTABLECONTAINS也发生了类似的情况, predicate 搜索也不起作用。
这种行为的原因可能是什么?

hvvq6cgz

hvvq6cgz1#

其他和11是两个不同的词。
使用FTS predicate (如“Other*"),您将找到“Otherwise”,但不会找到“Other 11”
您需要使用NEAR predicate ,如下所示:

'NEAR((Other, 11),1, TRUE)'

相关问题