原文地址:http://blog.9day.net/dz_music/music.asp?url=http%3A//blog.9day.net/article.asp%3Fid%3D321
一个完整的SQL SERVER数据库全文索引的示例。(以pubs数据库为例)
首先,介绍利用系统存储过程创建全文索引的具体步骤:
1) 启动数据库的全文处理功能(sp_fulltext_database)
2) 建立全文目录(sp_fulltext_catalog)
3) 在全文目录中注册需要全文索引的表(sp_fulltext_table)
4) 指出表中需要全文索引的列名(sp_fulltext_column)
5) 为表创建全文索引(sp_fulltext_table)
6) 填充全文目录(sp_fulltext_catalog)
---------********示例********-------------
以对pubs数据库的title和notes列建立全文索引,之后使用索引查询title列或notes列中包含有datebase 或computer字符串的图书名称:
在这之前,需要安装Microsoft Search服务,启动SQL server全文搜索服务
user pubs --打开数据库
go
--检查数据库pubs是否支持全文索引,如果不支持
--则使用sp_fulltext_database 打开该功能
if(select databaseproperty('pubs','isfulltextenabled'))=0
execute sp_fulltext_database 'enable'
--建立全文目录FT_PUBS
execute sp_fulltext_catalog 'FT_pubs','create'
--为title表建立全文索引数据元
execute sp_fulltext_table 'title','create','FT_pubs','UPKCL_titleidind'
--设置全文索引列名
execute sp_fulltext_column 'title','title','add'
execute sp_fulltext_column 'title','notes','add'
--建立全文索引
--activate,是激活表的全文检索能力,也就是在全文目录中注册该表
execute sp_fulltext_table 'title','activate'
--填充全文索引目录
execute sp_fulltext_catalog 'FT_pubs','start_full'
go
--检查全文目录填充情况
While fulltextcatalogproperty('FT_pubs','populateStatus')<>0
begin
--如果全文目录正处于填充状态,则等待30秒后再检测一次
waitfor delay '0:0:30'
end
--全文目录填充完成后,即可使用全文目录检索
select title
form
where CONTAINS(title,'database')
or CONTAINS(title,'computer')
or CONTAINS(notes,'database')
or CONTAINS(notes,'database')
'--------------以下介绍一下全文操作类的系统存储过程
过程名称:sp_fulltext_service
执行权限:serveradmin或系统管理员
作用:设置全文搜索属性
过程名称:sp_fulltext_catalog
执行权限:db_owner及更高角色成员
作用:创建和删除一个全文目录,启动或停止一个全文目录的索引操作
过程名称:sp_fulltext_database
执行权限:db_owner角色成员
作用:初始化全文索引或删除数据库中所有全文目录
过程名称:sp_fulltext_table
执行权限:db_ddladnmin或db_owner角色成员
作用:将一个表标识为全文索引表或非全文索引表
过程名称:sp_fulltext_column
执行权限:db_ddladnmin角色成员
作用:指出一个全文索引表中的那些列假如或退出全文索引
分享到:
相关推荐
MySQL全文索引是一种高效检索文本数据的技术,尤其适用于大数据量的文本字段搜索。在MySQL中,全文索引主要应用于MyISAM和InnoDB两种表引擎,尽管MyISAM是传统选择,但自MySQL 5.6以后,InnoDB也开始支持全文索引。 ...
首先,全文索引(Full-text Index)是MySQL提供的一种特殊类型的索引,专门用于提高全文搜索的性能。全文索引适用于处理大量文本数据,它能够快速地找出包含特定单词或短语的记录。但是,全文索引并不适用于简单的...
- 缺点:如果表中没有合适的聚簇索引,InnoDB会选择一个合适的列自动创建一个隐藏的聚簇索引。 **非聚簇索引(Non-Clustered Index):** - 非聚簇索引的索引顺序与数据的物理排列顺序无关。 - 叶子节点包含了指向...
MySQL全文索引是一种高效搜索大量文本数据的机制,尤其适用于需要进行复杂文本匹配的场景,例如搜索引擎、内容管理系统等。全文索引不同于传统的基于B树的单列索引,它能够对一段文字进行分词,并查找包含这些词汇的...
在Solr中,DataImportHandler(DIH)组件是一个强大的工具,用于从各种外部数据源,如关系型数据库(如MySQL)中导入数据并建立全文索引。在本例中,我们将探讨如何使用Solr 3.6版本的DIH组件来对MySQL数据库中的...
MySQL中最常见的索引类型包括B-Tree索引、哈希索引、全文索引和空间索引。B-Tree索引适用于大多数情况,包括主键和非主键索引,而哈希索引则适用于等值查询,全文索引用于文本搜索,空间索引处理几何数据。 考虑...
MySQL支持多种类型的索引,包括B-Tree索引、哈希索引、全文索引和空间索引等。 B-Tree索引是最常见的一种,适用于范围查询和排序。它按照键值的顺序存储,使得查找、插入和删除操作的时间复杂度保持在对数级别。...
例如,创建一个全文索引名为 `IDX_testNoPK_Description` 的索引,索引列是 `description`: CREATE FULLTEXT INDEX IDX_testNoPK_Description ON testNoPK (description); ### 空间索引 空间索引是指对空间类型...
4. **全文索引**:从MySQL 3.23.23版本开始支持全文索引和全文检索功能,适用于文本搜索等场景。 5. **删除索引**:使用`DROP INDEX index_name ON tableName;`命令可以删除已存在的索引。 #### 单列索引与组合...
在这个例子中,我们首先创建了一个包含员工信息的表`Employees`,并为其`lastName`列创建了一个普通索引。此外,还为`email`列创建了一个唯一索引,以确保每个员工的电子邮件地址都是唯一的。最后,我们展示了如何...
在Laravel框架中进行开发时,数据库操作是一个关键部分,特别是当处理大量数据并需要高效查询时。MySQL的全文索引功能为此提供了很好的解决方案。本文将深入探讨如何在Laravel项目中利用MySQL的全文索引功能,以实现...
MySQL 是一种基于 C/S 模式的数据库管理系统,需要有一个客户机来与 MySQL 数据库管理系统关联。在日常工作中,可以通过各种客户端软件来与 MySQL 数据库管理系统关联。 MySQL 官方提供了许多命令工具,可以用来管理...
不同类型的索引(如哈希索引和全文索引)在同一列上创建也不会构成B-Tree索引的冗余。冗余索引常见于添加新索引时,尤其是当新索引只是现有索引的扩展,如从`(A)`扩展到`(A,B)`,或在InnoDB中添加包含主键的索引 `(A...
在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 ...
- 全文索引:适用于全文搜索,但在MySQL默认引擎中支持有限,通常需要结合Sphinx或Coreseek这样的全文搜索引擎实现。 - 外键索引:用于关联不同表之间的数据,确保数据一致性,仅InnoDB引擎支持。外键可以避免非法...
在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 ...
4. **全文索引**:在InnoDB存储引擎中支持全文索引,方便进行文本搜索。 5. **内存管理优化**:改进了内存池管理,减少内存碎片,提高系统性能。 6. **并行复制**:在MySQL 5.6中,从服务器可以并发处理主服务器的多...