一、检查服务里面带有Full-text字样的服务是否存在并开启
如果不存在带有Full-text字样的服务的,确认是否安装了sqlserverFullTextSearch
--检查数据库PS2是否支持全文索引,如果不支持
--则使用sp_fulltext_database 打开该功能
if(select databaseproperty('PS2','isfulltextenabled'))=0
execute sp_fulltext_database 'enable'
二、新建全文目录
三、为表定义全文索引
四、点击下一步,按提示选择
1.确认下一步
2.选择唯一索引,通常是主键
3.选择要建立的全文索引列,对于断字符的选择如果列存的是中文就选择chinese,如果是英文就选择English
4.选择索引更新方式,可以先自动更新,以后数据量大了可以设置添加全文索引的计划
5.选择全文目录
五、全文索引的SQL查询关键字
1. CONTAINS
- SELECT *
- FROM dbo.Business
- WHERE CONTAINS(Address,'旅游')
2. FREETEXT
- 01.select *
- 02.from dbo.Business
- 03.where freetext(Address,'带婴儿旅游')
3.CONTAINSTABLE
- SELECT *
- FROM Business AS FT_TBL
- INNER JOIN CONTAINSTABLE(Business, *, 'ISABOUT (婴儿 WEIGHT (.8),赤水 WEIGHT (.4) )')
- AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[KEY]
- ORDER BY KEY_TBL.RANK DESC
4. FREETEXTTABLE
- SELECT * ,
- BusinessID ,
- Address
- FROM Business AS FT_TBL
- INNER JOIN FREETEXTTABLE(Business, Address, 'ISABOUT (带婴儿旅游 WEIGHT (.8),赤水 WEIGHT (.4) )')
- AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[KEY]
- ORDER BY KEY_TBL.RANK DESC
--activate,是**表的全文检索能力,也就是在全文目录中注册该表
execute sp_fulltext_table 'ProSearch','activate'
--填充全文索引目录
execute sp_fulltext_catalog 'ProSearchCatalog','start_full'
--查询全文索引是否建立完毕(0:完毕;1:正在建立)
select fulltextcatalogproperty('ProSearchCatalog','populateStatus')
三、介绍一下全文索引的一些相关操作
查看全文检索的配置情况:
sp_help_fulltext_catalogs -- 检查数据库有哪些全文目录
sp_help_fulltext_tables ProSearchCatalog -- 查看哪些表把全文索引建立在T_testData下
sp_help_fulltext_columns ProSearch -- 查看test表哪些字段配置了全文索引
四、步骤说明(额外,其它理解方式):
1. 启动数据库的全文处理功能(sp_fulltext_database);;
2. 建立全文检索目录(sp_fulltext_catalog);
3.在全文检索目录中注册需要全文索引的表(sp_fulltext_table);
4. 指出表中需要全文检索的列名(sp_fulltext_column);
5. 为表创建全文索引(sp_fulltext_table);
6. 填充全文检索目录(sp_fulltext_catalog);
下面举例说明如何创建全文索引,在本例中,对Test数据库Book表中Title列和Notes列建立全文索引
use test //打开数据库
//打开全文索引支持,启动SQL Server的全文搜索服务
execute sp_fulltext_database ‘enable’
//建立全文检索目录ft_test
execute sp_fulltext_catalog ‘ft_test’, ‘create’
为Title列建立全文索引数据元,pk_title为Book表中由主键所建立的唯一索引,这个参数是必需的。
execute sp_fulltext_table ‘book’,‘create’, ‘ft_test’,‘pk_title’
//设置全文索引列名
execute sp_fulltext_column ‘book’, ‘title’, ‘add’
execute sp_fulltext_column ‘book’,‘notes’, ‘add’
//建立全文索引
execute sp_fulltext_table ‘book’, ‘activate’
//填充全文索引目录
execute sp_fulltext_catalog ‘ft_test’, ‘start_full’
至此,全文索引建立完毕。可进行全文检索
删除全文索引必须与创建的时候倒过来一步一步操作:
drop fulltext index on test -- 撤销test上的全文检索
drop fulltext catalog FT_testData -- 撤销全文目录FT_testData