0

我正在单列上尝试 MS SQL 全文查询。

为此,我正在使用“CONTAINSTABLE”功能。

以下是我的存储过程:

ALTER PROC [dbo].[USP_Videos_SearchVideos_ContainsTable]
    @searcher varchar(2000)

AS

DECLARE @SearchString varchar(2000)

SET @SearchString = 'FormsOf(INFLECTIONAL, "' + @searcher + '")'

SELECT *

FROM table_name AS v 
    INNER JOIN CONTAINSTABLE(table_name, TitleText, @SearchString) AS Ranker 
        ON v.ID = Ranker.[KEY] 
    INNER JOIN mst_Categories AS c 
        ON v.CategoryId = c.ID 


WHERE RANKER.RANK >= 100 

ORDER BY Ranker.RANK DESC, v.ViewCount DESC

我可以传递整个“搜索字符串”,但结果只包含那些完全包含“搜索字符串”的视频到他们的“视频标题”中。

这不是预期的,而是应该返回包含屈折词的结果集,因为我在存储过程中使用“FormsOf”。

请对此发表评论。

4

1 回答 1

0

支持的查询词形式(全文搜索)显示支持的查询形式:

特定词的屈折形式(代词):屈折形式是动词的不同时态或名词的单数和复数形式。

搜索特定单词的屈折形式的更多细节:

您可以搜索动词的所有不同时态或名词的单数和复数形式。例如,本主题中显示的查询搜索任何形式的“foot”(“foot”、“feet”等)

所以你看,你可以搜索单个单词(动词或名词)的变形,而不是短语。也就是说,FORMSOF(..,"search")''FORMSOF(..,"string")'但不是FORMSOF(..,"search string")'

于 2013-11-12T13:25:59.163 回答