设为首页 - 加入收藏 东莞站长网 (http://www.0769zz.com)-电商,营销推广,IT,建站经验,VR,5G,大数据,站长网!
热搜: 实现 创业者 美国 华为
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如果包含停用词,即使停用词列表为空,全文搜索也不

发布时间:2021-01-24 23:54 所属栏目:[MsSql教程] 来源:网络整理
导读:我希望能够搜索每个单词,所以我已经清除了单词列表.比我重建了索引.但不幸的是,如果我输入一个带有停用词的搜索表达式,它仍然不会返回任何行.如果我遗漏了单词,我会得到结果.例如. “双重磨损留在原地” – 没有结果,“双重磨损停留的地方” – 我得到的结果

我希望能够搜索每个单词,所以我已经清除了单词列表.比我重建了索引.但不幸的是,如果我输入一个带有停用词的搜索表达式,它仍然不会返回任何行.如果我遗漏了单词,我会得到结果.例如. “双重磨损留在原地” – 没有结果,“双重磨损停留的地方” – 我得到的结果实际上也包含“in”.

有谁知道为什么会这样?我正在使用SQL Server 2012 Express.

非常感谢!

解决方法

与此同时,我设法解决了这个问题.问题是我有自己的停止列表,确实是空的,但是我的全文目录与我自己的停止列表无关,而是与系统关联.以下是一些解决停用词和全文搜索问题的有用查询:

查询停用词(不回馈系统停机词!):

select * from sys.fulltext_stopwords

查询停止列表(不返回系统列表!):

select * from sys.fulltext_stoplists

检查目录中包含的单词:

SELECT * FROM sys.dm_fts_index_keywords(DB_ID('dbname'),OBJECT_ID('tablename'))

检查关联:

select fulltext_catalog_id,stoplist_id,* from sys.fulltext_indexes;

关闭停止列表:

ALTER FULLTEXT INDEX ON CremeSearchFT SET STOPLIST = OFF

我希望它对某人有帮助.

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章