sql contains()不返回“the”的结果

s2j5cfk0  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(385)

我有如下sql脚本来查询我的 ContactInfoes table

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

我只得到一个空的结果集。我的表中有一个名为“公司”的条目。
为什么我在这里没有得到任何数据,以及如何解决这个问题。感谢您的帮助。
我正在使用sql server 2019

83qze16e

83qze16e1#

您创建了全文索引,但没有指定非索引字表。因此,使用了默认的非索引字表。默认情况下,“the”是从文本中删除的停止词。如果要按单词“the”搜索,应创建一个空非索引字表,然后在全文索引中指定此非索引字表。您可以通过查询检查的默认停止词:

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

然后可以创建空的非索引字表:

CREATE FULLTEXT STOPLIST MyEmptyStopList;  
GO

然后将其设置到全文索引中:

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

anauzrmj2#

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

ALTER FULLTEXT INDEX ON [tablename]  Set StopList = OFF

我已经配置了一个索引,它使用默认的非索引字表。我要在这里关闭非索引名单

相关问题