带连接的SQL Server全文搜索无法按预期工作

时间:2017-12-20 00:21:22

标签: sql-server full-text-search

使用CONTAINS谓词运行全文搜索查询在针对单个表(简单查询)完成时成功运行

SELECT *
FROM [dbo].[Entity] A 
WHERE CONTAINS(A.EntityName,'Test')

此查询返回与CONTAINS谓词匹配的多个结果。

SELECT *
FROM [dbo].[Entity] A 
INNER JOIN [dbo].[EntityLink] B
ON A.Id = B.EntityId

此查询还返回包含短语Test的EntityName的多个结果。

SELECT *
FROM [dbo].[Entity] A 
INNER JOIN [dbo].[EntityLink] B
ON A.Id = B.EntityId
WHERE CONTAINS(A.EntityName,'Test')

此查询不会返回任何结果(我刚刚在第二个查询中添加了包含谓词)。 我尝试了多种选择,而且我有点沮丧,因为它的表现不如预期。 为什么联接阻止它正常工作?

1 个答案:

答案 0 :(得分:0)

查看CONTAINSTABLE版本是否返回任何数据:

SELECT *
FROM [dbo].[Entity] A 
INNER JOIN [dbo].[EntityLink] B
ON A.Id = B.EntityId
JOIN CONTAINSTABLE([Entity], [EntityName], 'Test') as FTS
ON FTS.[KEY] = A.Id

CONTAINSTABLE专门用于JOINs。但是,为了100%准确,我们需要根据上面的评论查看查询返回的JOIN数据。