小编典典

即使停用词列表为空,如果包含停用词,全文搜索也不起作用

sql

我希望能够搜索每个单词,因此我已清除了停用词列表。比我已经重建了索引。但是不幸的是,如果我输入带有停用词的搜索表达式,它仍然不会返回任何行。如果我只剩下停用词,我一定会得到结果。例如,“双重磨损保持原位”-没有结果,“双重磨损保持原位”-我得到的结果实际上也包含“中”。

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

非常感谢!


阅读 43

收藏
2021-04-22

共1个答案

小编典典

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

查询停用词(不返回系统的停用词!):

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

希望对您有所帮助。:)

2021-04-22