SQL Server 2008全文索引问题

时间:2011-06-02 16:32:26

标签: sql sql-server-2008 fulltext-index

我有一个TableA,如下所示,其中为列Name指定了全文索引

表A

Id (PK)
Name (TXI)

该表格有以下记录:

ingrid
neville
ned
audry
inga

然后我对表运行以下查询:

SELECT * FROM TableA WHERE CONTAINS(Name,'"n*"');

查询结果如下:

Id         Name
1          ingrid 
2          neville
3          ned

为什么它会返回第一条记录,即使它不以'n'开头?

4 个答案:

答案 0 :(得分:0)

尝试:

SELECT * FROM TableA WHERE CONTAINS(Name,'n*');

答案 1 :(得分:0)

您的全文索引可能已过期。重建它会解决您的问题吗?

答案 2 :(得分:0)

按照Jim B的建议尝试通过以下方式更新您的目录:

ALTER FULLTEXT CATALOG TableA REORGANIZE

然后

SELECT * FROM TableA WHERE CONTAINS(Name,'"n*"');

另一个提示:全文的目的是在文本中搜索单词所以我不知道你是在测试全文但是要得到你想要的东西,他们正确的方式是LIKE运算符:

SELECT * FROM TableA WHERE Name LIKE 'n%';

答案 3 :(得分:0)

您的查询对我有用....:

TRUNCATE TABLE FTS_Demo_2

INSERT  FTS_Demo_2 (Document) VALUES ('ingrid')
INSERT  FTS_Demo_2 (Document) VALUES ('neville')
INSERT  FTS_Demo_2 (Document) VALUES ('ned')
INSERT  FTS_Demo_2 (Document) VALUES ('audry')
INSERT  FTS_Demo_2 (Document) VALUES ('inga')

/* WAIT FOR AUTO POPULATION TO POPULATE */

SELECT  * FROM FTS_Demo_2 WHERE CONTAINS (Document, '"n*"')

结果:

RecordID    Document
----------- --------------------
2           neville
3           ned

(2 row(s) affected)

您的FTS索引或目录可能有问题吗?你的专栏类型是什么?我在这个例子NVARCHAR(MAX)中创建了这个列,这是目录属性:

enter image description here