创建全文索引----SQLserver
1、启动 Microsoft Search 服务
开始菜单-->SQL程序组-->服务管理器-->下拉筐-->Microsoft Search 服务-->启动它。
2、 ..\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目录里建一个非空noise.chs文件
非空noise.chs文件,也有人说是空的noise.chs文件,但我每次都往里写几个没用的字母。
3、建立环境
打开查询分析器-->执行下列脚本:
--检查数据库pubs是否支持全文索引,如果不支持
--则使用sp_fulltext_database 打开该功能
if(select databaseproperty('DeviceInfoPortal','isfulltextenabled'))=0
execute sp_fulltext_database 'enable' --建立全文目录FT_PUBS
execute sp_fulltext_catalog 'FT_DeviceInfoPortal','create' --创建唯一索引
create unique clustered index Idx_files_id on dbo.files(fileid) --为title表建立全文索引数据元
execute sp_fulltext_table 'files','create','FT_DeviceInfoPortal','Idx_files_id' --设置全文索引列名
--execute sp_fulltext_column 'files','content','add'
execute sp_fulltext_column @tabname = 'files',@colname = 'content',@action = 'add',@type_colname = 'type'; --execute sp_fulltext_column 'files','content','drop' --建立全文索引
--activate,是激活表的全文检索能力,也就是在全文目录中注册该表
execute sp_fulltext_table 'files','activate' --填充全文索引目录
execute sp_fulltext_catalog 'FT_DeviceInfoPortal','start_full'
go --在您可以使用操作系统筛选器、断字符和词干分析器之前,您必须将它们加载到服务器实例中
execute sp_fulltext_service @action='load_os_resources', @value=1; --检查全文目录填充情况
While fulltextcatalogproperty('FT_DeviceInfoPortal','populateStatus')<>0
begin --如果全文目录正处于填充状态,则等待30秒后再检测一次
waitfor delay '0:0:30'
end
--全文目录填充完成后,即可使用全文目录检索 select *
from files
where CONTAINS(*,'运行记录')
or CONTAINS(*,'Understanding')
or CONTAINS(*,'全文搜索') or CONTAINS(*,'出厂日期')
结果如下:
全文索引中的几个问题:
1. 搜索时出现错误:
服务器: 消息 7619,级别 16,状态 1,行 2
查询子句只包含被忽略的词
这种情况修改 \Mssql\Ftdata\Sqlserver\Config 下对应语言的干扰词列表文件
2. 修改了干扰词文件,查询中文时仍然出现上述问题
a. 首先检查你的SQL有没有安装最新的补丁,检查的方法是在查询分析器中运行:
select @@version
如果出来的版本号是8.00.760以下,则表明你未安装sp3的补丁,要装上。
注意下载后,执行的时候是解压,要在解压后的目录中执行setup.bat才是真正的安装。
b. 配置全文索引时,单词断字符选择"中文(中国)"
c. Noise.chs文件中至少有一个单词,例如:?
d. 如果在全文检索时,你能正常修改干扰词文件,说明你的全文检索没有使用上这个文件。
如果你配置的全文检索应该要用到这个文件,那就在
“企业管理器--展开你的数据库--右键全文目录--重建全部全文目录”
3. 表中的数据改变后,检索不到。
方法1. 右键你的表--全文索引表--启用增量填充
方法2. 右键你的表--全文索引表--更改跟踪,这样以后的修改会自动填充(有一定延迟)
4. SQL Server 2000以上才支持对image列的全文检索。
最新文章
- [LeetCode] Valid Parentheses 验证括号
- [WinForm] VS2010发布、打包安装程序
- 水面shader 线性擦除
- iOS开发 UIPanGestureRecognizer手势抽象类
- android数据存储之SharedPreferences
- python logging 学习笔记
- MQ产品比较-ActiveMQ-RocketMQ
- oracle 树形表结构查询 排序
- 运维自动化之系统部署 cobbler(三)
- 莫烦theano学习自修第九天【过拟合问题与正规化】
- BZOJ.3495.[PA2010]Riddle(2-SAT 前缀优化建图)
- Linux说明书 - man浅谈
- day33(sql)
- 用matplotlib制作的比较满意的蜡烛图
- [转载]CMMI之功能点估算法:EI、EQ和EO
- 两种方式— 在hive SQL中传入参数
- 20155235 2017-2018-1 《Java程序设计》第2周学习总结
- 使当前对象相对于上层DIV 水平、垂直居中定位
- vue单选,多选,多选的内容显示在页面可删除
- 响应式布局框架 Pure-CSS 5.0 示例中文版-下
热门文章
- Php+Redis函数使用总结
- 在win10系统安装两个不同版本的mySQL数据库
- numpy之数组属性与方法
- 堆的ptmalloc机制
- selenium元素定位方式xpath总结
- 七十三:flask信号之信号机制和使用场景
- nginx 配置方向代理出错 The character [_] is never valid in a domain name
- 【D3D12学习手记】The Command Queue and Command Lists
- 记一次flannel调试
- 运行python manage.py 出现mportError: No module named django.core.management when using manage.py