全文搜索 (SQL Server) 修复
2009-05-23 15:04
239 查看
http://msdn.microsoft.com/zh-cn/msdntv/ms189801.aspx
//Sys.WebForms.PageRequestManager.getInstance()._updateControls(['fctl00$WikiContent$ctl00$ItemUpdatePanel'], [], [], 90);
//]]>
sp_fulltext_catalog (Transact-SQL)
SQL Server 2008 联机丛书(2009 年 1 月)
sp_fulltext_catalog (Transact-SQL)
更新日期: 2008 年 10 月 31 日
创建和删除全文目录,并启动和停止目录的索引操作。可为每个数据库创建多个全文目录。
Transact-SQL 语法约定
语法
参数
[ @ftcat=] 'fulltext_catalog_name'
全文目录名称。每个数据库的目录名称必须是唯一的。fulltext_catalog_name 的数据类型为 sysname。
[ @action=] 'action'
要执行的操作。action 的数据类型为 varchar(20),可以是下列值之一。
[ @path=] 'root_directory'
用于 create 操作的根目录(并不是完整的物理路径)。root_directory 的数据类型为 nvarchar(100),默认值为 NULL,表示使用安装时指定的默认位置。这是 Mssql 目录中的 Ftdata 子目录;例如,C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FTData。指定的根目录必须驻留在同一台计算机的某一驱动器上,它不能只包含驱动器号,也不能是相对路径。不支持使用网络驱动器、可移动驱动器、软盘和 UNC 路径。全文目录必须在与 SQL Server 实例相关联的本地硬盘上创建。
只有当 action 为 create 时,@path 才有效。对于 create 以外的操作(stop、rebuild 等),@path 必须为 NULL 或省略。
如果 SQL Server 的实例是群集中的虚拟服务器,则指定的目录所在目录需要位于 SQL Server 资源所属的共享磁盘驱动器上。如果未指定 @path,则默认目录所在目录的位置在共享磁盘驱动器上,在安装虚拟服务器时指定的目录中。
返回代码值
0(成功)或 1(失败)
结果集
无
备注
start_full 操作用于在 fulltext_catalog_name 中创建全文数据的一个完整快照。start_incremental 操作用于只对数据库中更改过的行重新索引。仅当表中有 timestamp 类型的列时,才能使用增量填充。如果全文目录中的表不包含 timestamp 类型的列,则该表将进行完全填充。
全文目录及索引数据存储在某些文件中,这些文件是在全文目录所在目录中创建的。全文目录所在目录作为 @path 指定目录中的子目录创建,如果未指定 @path,则在服务器默认值全文目录所在目录中创建。生成全文目录所在目录名称的方式可以保证它在服务器上是唯一的。因此,一个服务器上所有的全文目录所在目录可以共享相同的路径。
权限
要求调用方是 db_owner 角色的成员。根据请求的操作,不应拒绝为调用方授予目标全文目录的 ALTER 或 CONTROL 权限(db_owner 具有的权限)。
示例
复制代码
复制代码
复制代码
复制代码
复制代码
请参阅
sp_fulltext_database (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)
sp_help_fulltext_catalogs_cursor (Transact-SQL)
系统存储过程 (Transact-SQL)
更改历史记录
//Sys.WebForms.PageRequestManager.getInstance()._updateControls(['fctl00$WikiContent$ctl00$ItemUpdatePanel'], [], [], 90);
//]]>
sp_fulltext_catalog (Transact-SQL)
SQL Server 2008 联机丛书(2009 年 1 月)
sp_fulltext_catalog (Transact-SQL)
更新日期: 2008 年 10 月 31 日
创建和删除全文目录,并启动和停止目录的索引操作。可为每个数据库创建多个全文目录。
重要提示: |
---|
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 CREATE FULLTEXT CATALOG、ALTER FULLTEXT CATALOG 和 DROP FULLTEXT CATALOG。 |
Transact-SQL 语法约定
语法
sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' , [ @action= ] 'action' [ , [ @path= ] 'root_directory' ]
参数
[ @ftcat=] 'fulltext_catalog_name'
全文目录名称。每个数据库的目录名称必须是唯一的。fulltext_catalog_name 的数据类型为 sysname。
[ @action=] 'action'
要执行的操作。action 的数据类型为 varchar(20),可以是下列值之一。
注意: |
---|
可根据需要创建、删除和修改全文目录。但请避免同时对多个目录的架构进行更改。建议使用 sp_fulltext_table 存储过程执行这些操作。 |
值 | 说明 |
---|---|
Create | 在文件系统中创建一个空的新全文目录,并且向 sysfulltextcatalogs 添加一行,该行与 fulltext_catalog_name 及 root_directory(如果存在的话)值相关。在数据库内,fulltext_catalog_name 必须是唯一的。 |
Drop | 通过从文件系统中移除 fulltext_catalog_name,并删除 sysfulltextcatalogs 中相关联的行,可以删除 fulltext_catalog_name。如果此目录中包含一个或多个表的索引,则此操作将失败。应执行 sp_fulltext_table 'table_name', 'drop' 以删除目录中的表。 如果目录不存在,则会显示错误。 |
start_incremental | 启动 fulltext_catalog_name 的增量填充。如果目录不存在,则会显示错误。如果一个全文索引填充已经是活动的,则会显示一个警告,而不发生填充操作。使用增量填充,只为全文索引检索那些更改过的行,但条件是被全文索引的表中存在一个 timestamp 列。 |
start_full | 启动 fulltext_catalog_name 的完全填充。即使与此全文目录相关联的每一个表的每一行都进行过索引,也会对其检索全文索引。 |
Stop | 停止 fulltext_catalog_name 的索引填充。如果目录不存在,则会显示错误。如果已经停止了填充,则不会显示警告。 |
Rebuild | 重新生成 fulltext_catalog_name。重新生成目录时,将删除现有目录,并在其原位置创建一个新目录。具有全文索引引用的所有表都与此新目录相关联。重新生成会重置数据库系统表中的全文元数据。 如果更改跟踪为 OFF,重新生成并不会导致重新填充新创建的全文目录。在这种情况下,若要重新填充,请使用 start_full 或 start_incremental 操作执行 sp_fulltext_catalog。 |
用于 create 操作的根目录(并不是完整的物理路径)。root_directory 的数据类型为 nvarchar(100),默认值为 NULL,表示使用安装时指定的默认位置。这是 Mssql 目录中的 Ftdata 子目录;例如,C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FTData。指定的根目录必须驻留在同一台计算机的某一驱动器上,它不能只包含驱动器号,也不能是相对路径。不支持使用网络驱动器、可移动驱动器、软盘和 UNC 路径。全文目录必须在与 SQL Server 实例相关联的本地硬盘上创建。
只有当 action 为 create 时,@path 才有效。对于 create 以外的操作(stop、rebuild 等),@path 必须为 NULL 或省略。
如果 SQL Server 的实例是群集中的虚拟服务器,则指定的目录所在目录需要位于 SQL Server 资源所属的共享磁盘驱动器上。如果未指定 @path,则默认目录所在目录的位置在共享磁盘驱动器上,在安装虚拟服务器时指定的目录中。
返回代码值
0(成功)或 1(失败)
结果集
无
备注
start_full 操作用于在 fulltext_catalog_name 中创建全文数据的一个完整快照。start_incremental 操作用于只对数据库中更改过的行重新索引。仅当表中有 timestamp 类型的列时,才能使用增量填充。如果全文目录中的表不包含 timestamp 类型的列,则该表将进行完全填充。
全文目录及索引数据存储在某些文件中,这些文件是在全文目录所在目录中创建的。全文目录所在目录作为 @path 指定目录中的子目录创建,如果未指定 @path,则在服务器默认值全文目录所在目录中创建。生成全文目录所在目录名称的方式可以保证它在服务器上是唯一的。因此,一个服务器上所有的全文目录所在目录可以共享相同的路径。
权限
要求调用方是 db_owner 角色的成员。根据请求的操作,不应拒绝为调用方授予目标全文目录的 ALTER 或 CONTROL 权限(db_owner 具有的权限)。
示例
A. 创建全文目录
此示例在 AdventureWorks 数据库中创建一个空的全文目录 Cat_Desc。复制代码
USE AdventureWorks; GO EXEC sp_fulltext_catalog 'Cat_Desc', 'create'; GO
B. 重新生成全文目录
此示例在 AdventureWorks 数据库中重新生成现有的全文目录 Cat_Desc。复制代码
USE AdventureWorks; GO EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild'; GO
C. 启动全文目录的填充
此示例将开始 Cat_Desc 目录的完全填充。复制代码
USE AdventureWorks; GO EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full'; GO
D. 停止全文目录的填充
此示例将停止 Cat_Desc 目录的填充。复制代码
USE AdventureWorks; GO EXEC sp_fulltext_catalog 'Cat_Desc', 'stop'; GO
E. 删除全文目录
此示例将删除 Cat_Desc 目录。复制代码
USE AdventureWorks; GO EXEC sp_fulltext_catalog 'Cat_Desc', 'drop'; GO
请参阅
参考
FULLTEXTCATALOGPROPERTY (Transact-SQL)sp_fulltext_database (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)
sp_help_fulltext_catalogs_cursor (Transact-SQL)
系统存储过程 (Transact-SQL)
其他资源
全文搜索 (SQL Server)帮助和信息
获取 SQL Server 2008 帮助更改历史记录
更新的内容 |
---|
修改了 rebuild 操作的说明。 |
相关文章推荐
- 如何设置SQL Server 全文搜索
- SQL Server 2005 全文搜索__收藏
- SQLite3 数据库全文搜索 - SQL Server - 红黑联盟
- 如何设置SQL Server 全文搜索
- SQL Server之2:全文搜索(2)
- SQL Server 2008 R2 全文搜索
- SQL Server 全文搜索 配置、查询初体验
- SQL Server中全文搜索与Like的差异分析
- SQL Server 2005 应用 全文搜索
- 如何设置SQL Server 全文搜索
- 全文搜索的体系结构(SQL Server 2008)
- SQL SERVER 2008 全文搜索特殊字符
- SQL Server 2008 全文搜索的一些知识
- SQL Server 全文搜索 配置、查询初体验
- SQL Server之1:全文搜索(1)【转】
- SQL Server 2005 应用 全文搜索 -zt
- SQL Server 2008 全文搜索的一些知识
- 关于SQL Server 2008全文搜索
- SQL Server之2:全文搜索(2)
- 全文搜索的体系结构(SQL Server 2008)