我正在使用MsSQL server 2008,我正在使用带有搜索字词“can”的CONTAINSTABLE,但是搜索查询没有返回任何认为没有附加到该目录的停止列表的内容。
从城市c中选择DISTINCT c.ID. INNER JOIN CONTAINSTABLE(City,(Name),'“can”')AS city_tbl1 ON city_tbl1。[KEY] = c.ID
为确保此类存在,我运行了此查询
更新城市SET名称='可以'WHERE ID = 34
没有返回的结果。
请帮忙。
提前致谢 --Z
答案 0 :(得分:4)
这些词被称为“停用词”。它们被全文引擎忽略了。
在mssql 2008中,您可以通过执行以下代码来清除stopwords-table:
- 禁用stopwords-filter -
use yourDatabase;
create fulltext stoplist EmptyStopList;
alter fulltext index on yourFullTextTable
set stoplist EmptyStopList;
如果上述命令不起作用,请确保您的数据库兼容级别设置为100(这意味着它是一个2008数据库)。
- 确保 -
EXEC sp_dbcmptlevel youDatabase, 100;
答案 1 :(得分:2)
感谢您的回复。在你提到配置之后我想出来了,所以非常感谢。
但问题是系统停止词可以以某种方式控制索引,因此在配置中我启用了转换噪音词。
sp_configure'transformation noise words',1; 走 RECONFIGURE;
只是让它发挥作用。
非常感谢您的回复。 干杯 --Z
答案 2 :(得分:0)
SQL Server有一个文本文件,其中包含在搜索中被忽略的常用词。如果要添加/删除单词,请查看目录Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ FTDATA \
希望有所帮助。