SQL Contains()没有返回'The'的结果。

问题描述 投票:1回答:2

我有如下SQL脚本来查询我的 ContactInfoes 桌子

SELECT * 
FROM ContactInfoes
WHERE CONTAINS(Name, 'The') 

我只得到空的结果集。我的表中有一个名称为 "公司 "的条目。

为什么我没有得到任何数据,如何解决这个问题。任何帮助是感激的。

我使用的是SQL Server 2019

sql sql-server tsql contains
2个回答
3
投票

你在没有指定STOPLIST的情况下创建了FULLTEXT索引。因此,使用了默认的STOPLIST。默认情况下,单词'the'是停止词,从您的文本中删除。如果您想用'the'这个词搜索,您应该创建一个空的STOPLIST,然后在您的FULLTEXT INDEX中指定这个STOPLIST。

SELECT *
FROM sys.fulltext_system_stopwords
WHERE language_id = 1033 -- English

然后你就可以创建一个空的STOPLIST,然后把它设置到你的FULLTEXT INDEX中。

CREATE FULLTEXT STOPLIST MyEmptyStopList;  
GO 

然后把它设置到你的FULLTEXT INDEX中。

CREATE FULLTEXT INDEX ON table_name ... STOPLIST = MyEmptyStopList;

2
投票

对我来说,简单的解决方案是使用下面的脚本来关闭停止列表。

ALTER FULLTEXT INDEX ON [tablename]  Set StopList = OFF

我已经配置了一个索引,它使用默认的停止列表。我在这里关闭了stoplist

© www.soinside.com 2019 - 2024. All rights reserved.