1

我发现使用全文索引的查询存在一个奇怪的问题。

以下查询

#1 SELECT * FROM tbparticipant where contains([FullTextQuery],'ALINE AND NASCIMENTO')

返回

ALINE DO NASCIMENTO
ALINE QUEIROZ DO NASCIMENTO                       
ALINE NASCIMENTO DE SOUZA
ALINE CORREIA DO NASCIMENTO

但是这个查询

#2 SELECT * FROM tbparticipant where contains([FullTextQuery],'ALINE AND DO')

什么都不返回。

我认为“DO”太短会是个问题,但是这个查询

#3 SELECT * FROM tbparticipant where contains([FullTextQuery],'ALINE AND DE')

返回

ALINE NASCIMENTO DE SOUZA

那么,查询 #2 有什么问题?

4

1 回答 1

1

“Do”在停用词列表中 - 停用词是被认为对全文查询具有任何重要意义的常用词或短词。您可以像这样列出英语的停用词:

select * from sys.fulltext_system_stopwords where language_id = 1033

参考:http: //msdn.microsoft.com/en-us/library/ms142551.aspx

于 2013-07-19T15:37:09.323 回答