1, 全文索引:一般索引是按字段将字段整个数据进行排序,而全文索引是对字段数据中某一部分进行索引的建立。
与一般的索引立即更新不同,全文索引一般是定期维护索引的,所以对于频繁更新的数据不合适,需要做全文索引的对象一般都是论文网页之类。
2,使用:使用关键字:CONTAINS、FULLTEXT、CONTAINSTABLE、FREETEXTTABLE。
?? ??? ??? ??? ?例如:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'”search contents*”‘)
?? ??? ??? ????
?? ?FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所?? ??? ??? ??? ??? ??? 以,FREETEXT语句所执行的功能又称做自由式全文查询。
??? 下面语句使用FREETEXT语句搜索Book表中包含“Successful Life”字符串的数据行:
?? ??? select title, notes from book where freetext(*,‘Successful Life’) ?
3, 建立步骤:
??? 1)确认安装了full text search service,并启动了 Microsoft ? Search ? 服务
2)数据库允许全文索引:EXEC sp_fulltext_database ‘enable’ go
或者右键数据库-文件-允许全文索引
??? 3)右击表,建立全文索引,在选择表/视图更改跟踪方式时:若是自动,则在表插入更新时会自动更新索引,手动即手动更新。
??? 4)数据库/存储下可看到全文目录
4,手动执行填充:execute sp_fulltext_catalog ‘FullText’,’start_incremental’ 增量填充
?? ??? ??? ??? ??? ??? ???? execute sp_fulltext_catalog ‘FullText’,’start_full’ 完全填充
??????????????????????????? 完全填充发生在第一次建立时,之后可以通过增量填充来完成,不过数据库表中段有timestamp字段,否则,即使执行了增量填充,实际执行的也是完全填充。
注:全文索引对数据分隔建立索引,故比一般索引以整个数据建立的方式速度要慢上一些,不过比全表扫描要快!
注:若出现timeout的情况,利用sql语句拼接的方式。因为有的数据库不支持动态sql参数
注:建立全文索引的表须有一唯一非空的列,以通过此列值将相关的词关连起来,在查找词时,通过全文检索找到列值,再通过列值返回行(聚集索引)