SQL全文索引搜索部分关键字

时间:2014-11-11 08:36:16

标签: sql-server full-text-indexing

我有以下查询来搜索产品代码。如果@keyword是BAG-61,那么我没有收到任何结果,但如果我将@keyword更改为BAG-612,那么我确实收到了结果。这是为什么?

如果仅输入部分产品代码,我是否应该使用以下查询获得结果?

与SLAZ-816相同,如果仅输入SLAZ-81,则不返回任何内容,但如果输入SLAZ-,则结果中包含SLAZ-816。奇怪的。 也许这就是索引建立的方式?

DECLARE @search varchar(255)
SET @search = 'FORMSOF(INFLECTIONAL, "' + @keyword + '")'

SELECT p.code from Product p
where
(
    CONTAINS(p.code, @search) 
)

1 个答案:

答案 0 :(得分:0)

我认为你不是在寻找动词的不同时态。 FORMSOF(INFLECTIONAL用于搜索动词的所有不同时态,或用于搜索名词的单数和复数形式,因此不需要它。试试这个。

SELECT p.code from Product p
where
(
    CONTAINS(p.code, @keyword) 
)