3

我在用SQL Server 2008

DDL

CREATE TABLE [dbo].[t](
    [words] [varchar](1000) NULL,
    [id] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]

DML

insert into t(words)values('this is my laptop')
insert into t(words)values('this does not contains headphone')

SQL 查询

SELECT *
FROM 
t as t
JOIN CONTAINSTABLE(t, words,'"headphone*"', 10) fulltextSearch
ON
t.Id = fulltextSearch.[KEY]

结果

没有找到记录

我期待一个记录。任何的想法?

4

1 回答 1

3

“this”很可能是一个干扰词(如“the”、“and”等),因此它不会包含在索引中。尝试在文本中搜索一个真实的单词。

- 编辑 -

好吧,不是这样...

我尝试了您的代码,它按预期工作-查询返回了一条记录。唯一的区别是我将 [id] 定义为主键(您也必须这样做,否则您无法创建索引)。我打赌您的索引没有填充 - 在 SSMS 中,右键单击表格,选择“全文索引”->“开始完整填充”。

于 2012-08-16T19:44:16.047 回答