我很感激这已经很晚了,它可能会帮助其他人。
根据系统停止列表创建一个newstoplist;这将创建一个新的停止列表,其中包含系统停止列表中的所有单词(您无法在 2008+ sql 中修改)
CREATE FULLTEXT STOPLIST slMyNewStopList
FROM SYSTEM STOPLIST AUTHORIZATION dbo;
然后我检查了新的点列表是否正确创建;
select * from sys.fulltext_stoplists
select * from sys.fulltext_stopwords
在我的例子中,新的停止列表是 ID 6。我想删除的词是它;因为人们希望能够在数据中搜索“IT 功能”。于是我就这样查了目录里的字;
select * from sys.fulltext_stopwords
where stoplist_id = 6 and stopword = 'it' and language like '%english%'
要从停止列表中删除一个单词,您需要调用一个系统函数;我为英语和英式英语删除了它。此时你必须有分号。
ALTER FULLTEXT STOPLIST slMyNewStopList DROP 'it' LANGUAGE 'English';
ALTER FULLTEXT STOPLIST slMyNewStopList DROP 'it' LANGUAGE 'British English';
然后我通过再次运行选择查询来确认我的停止列表中缺少该单词
select * from sys.fulltext_stopwords
where stoplist_id = 6 and stopword = 'it' and language like '%english%'
然后我更新了我希望能够在其上搜索 IT 词的表格;
USE [Database]
GO
ALTER FULLTEXT INDEX ON [dbo].[tblDocuments] SET STOPLIST = [slMyNewStopList]
最后我重建了目录,所以所有文件都被重新索引了。
USE [Database]
GO
ALTER FULLTEXT CATALOG [catExample] REBUILD
GO