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