Sqlserver2008及以上使用全文索引排除干扰词
2017-11-21 15:07
176 查看
关于SQLServer2008全文索引干扰词
使用SQL SERVER 2008全文索引进行搜索 contains(Keywords, '"xx of xx*"') (注意是后面有包含"*"号的查询),由于包含了类似"of","and","or"等这类默认的全文索引干扰词,导致查询不到结果。可以按如下方法解决:
1.自定自己的干扰词库
--创建全文非索引字表(干扰词表)CREATE FULLTEXT STOPLIST T_FULLTEXT_STOPLIST_TableName --全文非索引字表表名
FROM SYSTEM STOPLIST; --从系统全文非索引字表导入
--删除我们不需要的干扰词,如"of"字
ALTER FULLTEXT STOPLIST [T_FULLTEXT_STOPLIST_TableName]
DROP 'of' LANGUAGE 'Simplified Chinese';
--增加我们需要的干扰词,如"of"字
ALTER FULLTEXT STOPLIST [T_FULLTEXT_STOPLIST_TableName]
ADD 'of' LANGUAGE 'Simplified Chinese';
由于此方法有点麻烦,所以我就没去具体测试了。
2.直接关闭干扰词功能
--设置关闭全文索引干扰词ALTER FULLTEXT INDEX ON [TableName] SET stoplist OFF
--如果要再开启,可以这样设置开启全文索引干扰词
ALTER FULLTEXT INDEX ON [TableName] SET stoplist SYSTEM
如果执行以上语句出现了如下错误:
'stoplist' 附近有语法错误。
或
Incorrect syntax near 'STOPLIST'.
那是因为SQL Server兼容级别的问题,解决方法为,执行以下语句:
--改变SQL兼容性版本80 = SQL Server 2000, 90 = SQL Server 2005, 100 = SQL Server 2008...
ALTER DATABASE DatabaseName SET COMPATIBILITY_LEVEL = 100
转自:http://www.1986z.com/Article-7.html
相关文章推荐
- [笔记]--Oracle 10g在Windows 32位系统使用2G以上内存
- Xcode6使用storyboard在TabBarController上建立三个以上Item
- 在使用Weblogic 8.1.5以上版本时,AEM中无法看到Weblogic中的数据源
- 在使用Weblogic 8.1.5以上版本时,AEM中无法看到Weblogic中的数据源
- Android Switch控件(在android2.2 api8及以上使用)
- Samba报错:不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接......
- 如何在Windows XP以上的版本中得知一个进程所使用的端口
- 工信部称我国近六成用户使用4M及以上带宽
- VS2010及以上使用GDI+
- 使用PHP函数scandir排除特定目录
- 3月13日工作笔记(补)——sql server 2008全文索引使用(part 1)
- SQL Server使用2G以上内存设置方法
- Extjs4.2或以上 使用自定义事件时报错问题
- 在全文索引中同义词的使用(SQL SERVER 2005)
- 使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
- sql server的全文索引的使用
- 解决”不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接“问题
- 如何在Windows XP以上的版本中得知一个进程所使用的端口
- iOS学习之iOS5.0以上使用新浪微博开放平台OAuth 续(及解决登录无效问题)
- sqlserver2008使用设置sa用户登录步骤