我有如下sql脚本来查询我的 ContactInfoes table
ContactInfoes
SELECT * FROM ContactInfoes WHERE CONTAINS(Name, 'The')
我只得到一个空的结果集。我的表中有一个名为“公司”的条目。为什么我在这里没有得到任何数据,以及如何解决这个问题。感谢您的帮助。我正在使用sql server 2019
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;
anauzrmj2#
对我来说,一个简单的解决方案是使用下面的脚本关闭停止列表
ALTER FULLTEXT INDEX ON [tablename] Set StopList = OFF
我已经配置了一个索引,它使用默认的非索引字表。我要在这里关闭非索引名单
2条答案
按热度按时间83qze16e1#
您创建了全文索引,但没有指定非索引字表。因此,使用了默认的非索引字表。默认情况下,“the”是从文本中删除的停止词。如果要按单词“the”搜索,应创建一个空非索引字表,然后在全文索引中指定此非索引字表。您可以通过查询检查的默认停止词:
然后可以创建空的非索引字表:
然后将其设置到全文索引中:
anauzrmj2#
对我来说,一个简单的解决方案是使用下面的脚本关闭停止列表
我已经配置了一个索引,它使用默认的非索引字表。我要在这里关闭非索引名单