一:简要介绍下全文索引
可以利用索引快速访问数据库表中的特定信息。索引是对数据库表中一个或多个列的值进行排序的结构。
索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。
数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行
二:全文索引的相关操作
1.确认全文索引是否开启
对于SQL2005每个创建的数据库全文索引特性默认是开启的
可以通过这个语句来确认它是否开启了
代码如下 | 复制代码 |
SELECT databasePropertyex('xland','isfulltextenabled') |
返回0为未开启,返回1为已开启
2.激活和禁止全文索引
禁用全文索引一定要注意,已经存在的全文目录,数据表同该目录的任何关联信息都会被删除
代码如下 | 复制代码 |
exec sp_fulltext_database @action = 'disable' 'enable'为激活 |
3.创建全文索引
代码如下 | 复制代码 |
use xland |
其中Eglish可改为简体中文
可通过
代码如下 | 复制代码 |
select name alias from master..syslanguages |
查询系统中支持的语言
修改和删除全文索引
代码如下 | 复制代码 |
drop fulltext index on dbo.mytable |
三.全文目录的相关操作
1.创建全文目录
创建全文目录的时候,全文索引一定要为enable状态
全文目录存放的路径一定要有效
代码如下 | 复制代码 |
use xland go exec sp_fulltext_database @action = 'enable' go create fulltext catalog maincatalog in path 'c:fulltext' |
更改和删除分别是alter和drop
代码如下 | 复制代码 |
drop fulltext catalog maincatalog |
与其他的没有太多区别
2.填充全文目录
这是个后台的过程,表大的话虽然提示成功了,但是后台还在填充
代码如下 | 复制代码 |
alter fulltext index on dbo.mytable use xland |
3.查看结果
代码如下 | 复制代码 |
select title from mytable where contains(title,'全文') |
四:全文查询语法
1.contains:精确的匹配
代码如下 | 复制代码 |
where contains(*,' "my name is" ') --对短语的精确匹配,注意要有双引号 where contains(*,' "my" or "name is" ') --或者的关系 |
还有'and not' 'and'
还有临近词和权重 我就不多说了
2.freetext:模糊匹配(你输入swim可以匹配出swam)与contains语法相同
3.containstable
此函数返回一个表
此表包含两个列
一个是key(就是主健啦) 一个是rank(返回的行与搜索结果的匹配程度,越大越精确)
代码如下 | 复制代码 |
select title from mytable p join containstable(mytable, title , 'xland') ct on p.id = ct.[key] |
4.freetexttable与containstable类似
附件:使用旧式语法创建全文索引的例子
代码如下 | 复制代码 |
use xland |
:
创造与魔法 安卓版v1.0.0750
创造与魔法是一款开放世界手游,在游戏中玩家可探索这个奇妙的世
创造与魔法修改版 最新版v1.0.0750
创造与魔法无限点券版是款探索冒险游戏,该款游戏的操作还是蛮自
战争与文明官方版本 安卓版v1.7.16
战争与文明是一款由上海邮通科技有限公司开发的战争策略游戏,这
迷你世界0元领皮肤无限迷你币版 最新安卓版v1.43.0
迷你世界0元购买皮肤版是这款开放沙盒冒险建造游戏的特殊破解版
创造与魔法无限经验版 安卓版v1.0.0750
创造与魔法无限经验版是款可以改造环境,整个游戏的自由度还是蛮