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

问题描述 投票:0回答:1

使用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')

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

sql-server full-text-search
1个回答
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查询返回的数据。

© www.soinside.com 2019 - 2024. All rights reserved.