关于SQLServer2000的全文检索使用心得

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介:
    之前曾经指导 SQLServer2000 的全文检索功能,不过不太清楚它的实际操作步骤和功能,现特地作了一次完整的实验,对 SQLServer2000 的该功能,做了一番了解。
   
-- 验证全文检索服务是否安装
-- 通过储存过程 FULLTEXTSERVICEPROPERTY (返回有关全文服务级别属性的信息)来验证搜索服务(全文组件)是否安装。
-- 如 Select fulltextserviceproperty ('IsFullTextInstalled')
-- 返回 1 表示已安装全文组件;
-- 返回 0 表示未安装全文组件;
-- 返回 Null 表示输入无效或发生错误。
Select fulltextserviceproperty ('IsFullTextInstalled')
 
-- 选一个数据库 进行全文检索
use fulltexttest
go
 
-- 从数据库中删除所有目录:
Exec sp_fulltext_database 'disable'
 
-- 打开数据库全文索引的支持
execute sp_fulltext_database 'enable'
go
 
-- 建立全文目录 ft_news ,新闻库
-- 使用不同参数进行全文目录的创建、重建、填充、删除
--create    创建
--rebuild   填充
--start_full  启动填充
--stop      删除
-- 以下执行新闻目录的创建
execute sp_fulltext_catalog 'ft_news', 'create'
go
 
-- 为 titles 表建立全文索引数据元, PK_dtlmb,PK_dtxxb 是主键所建立的唯一索引,可由 sp_help titles 得知
--sp_fulltext_table [ @tabname = ] 'qualified_table_name'
--   , [ @action = ] 'action'
--   [ , [ @ftcat = ] 'fulltext_catalog_name'
--   , [ @keyname = ] 'unique_index_name' ]
-- 为以下数据表分别创建主键
--alter table dtlmb add CONSTRAINT PK_dtlmb PRIMARY KEY CLUSTERED (t_dtlmb_ID)
--alter table dtxxb add CONSTRAINT PK_dtxxb PRIMARY KEY CLUSTERED (GUID)
-- 为全文索引对表进行标记
execute sp_fulltext_table 'dtlmb','create', 'ft_news', 'PK_dtlmb'
go
execute sp_fulltext_table 'dtxxb','create', 'ft_news', 'PK_dtxxb'
go
 
-- 设置全文索引列名
exec sp_fulltext_column 'dtlmb', 'dtlmlx', 'add'
go
exec sp_fulltext_column 'dtlmb', 'zt', 'add'
go
exec sp_fulltext_column 'dtlmb', 'cc', 'add'
go
exec sp_fulltext_column 'dtxxb', 'dtxxlmlx', 'add'
go
exec sp_fulltext_column 'dtxxb', 'zt', 'add'
go
exec sp_fulltext_column 'dtxxb', 'cc', 'add'
go
 
-- 激活全文索引
exec sp_fulltext_table 'dtlmb', 'activate'
go
exec sp_fulltext_table 'dtxxb', 'activate'
go
 
-- 填充全文索引目录
exec sp_fulltext_catalog 'ft_news', 'start_full'
GO
-- 检查全文目录填充情况,一共两张表 36 条记录花了 33 分钟
WHILE FulltextCatalogProperty('ft_news','PopulateStatus')<>0
BEGIN
 -- 如果全文目录正处于填充状态,则等待 30 秒后再检测一次
 WAITFOR DELAY '0:0:30'
END
-- 全文目录填充完成后,使用全文目录检索
 
-- 使用 contains 和 freetext
select zt,cc from dtlmb
 where contains(zt, 'xxx')
go
select zt,cc from dtlmb
 where contains(*, '"xxx"')
go
select dtxxlmlx,zt,cc from dtxxb
 where freetext(zt, 'xxx')
go
select dtxxlmlx,zt,cc from dtxxb
 where freetext (*, '"xxx"')
go
 
Select * from dtxxb where zt like ‘%xxx%’
-- 与全文检索相比,从网络统计信息 -> 所接收的字节数 / 时间统计信息 -> 服务器应答累计等待时间 , 时间相差一个数据量级
 
-- 增量填充,即激活并传播跟踪更改
-- 当更改发生时,下面的示例激活并启动将所跟踪的更改传播到全文索引。
-- 如果表不包含 timestamp 列,则只能执行完全填充或更改跟踪填充
EXEC sp_fulltext_table dtlmb, 'Start_change_tracking' -- 启动全文索引的增量填充
EXEC sp_fulltext_table dtlmb, 'Start_background_updateindex' -- 在变化发生时,开始将跟踪的变化传播到全文索引。
 
-- 更改一条记录,大约过一分钟之后,便可通过全文检索查询到 
 
SQLServer2000 企业管理 器中关于全文检索部分的功能和步骤
1、  从表上定义全文检索,即通过向导的方式,选择相应的全文目录和待查询的全文检索字段,系统会通过该表有无主键判断该表是否能够建立全文索引,同时也可实现对全文检索的调度。
2、  编辑全文检索,功能同上,对一个已经存在的全文索引进行修改。
3、  从表中删除全文索引,这个就不用说了
4、  启动完全填充,全文检索建立之后,系统并不会自动填充索引内容,需要执行该任务或者脚本。
如果为全文目录请求完全填充,则为该目录所涉及的所有表中的所有行生成索引项。如果为表请求完全填充,则为该表中的所有行生成索引项。完全填充通常发生在当首先填充目录或索引,然后使用更改跟踪或增量填充来维护索引时。
5、  启动增量填充
6、  停止填充,停止当前的填充任务,不管是完全还是增量。
7、  更改跟踪
维护在系统表中已修改的行的记录,并将更改传播到全文索引。通过执行 sp_fulltext_table 启动更改跟踪并为 @action 参数指定 start_change_tracking 。使用更改跟踪时,也指定从历史表取得更改并在全文索引中填充更改的时间
8、  更新后台中的索引
9、  更新索引
10、 调度,建立一个调度任务指定时间对数据进行全文检索更新








本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/309636 ,如需转载请自行联系原作者
相关文章
|
7月前
|
运维 监控 数据可视化
WGCLOUD主机管理系统 v3.5.7 更新功能说明
WGCLOUD 是一款开源免费的分布式运维监控平台,具备集群监控、易部署、轻量高效等特性。核心功能涵盖主机系统、CPU、内存、网络、磁盘、Docker、日志等全方位监控,并提供数据可视化、拓扑图、告警推送(邮件、钉钉、微信)等功能。最新版 v3.5.7 增强了 Docker 容器监控、自定义告警、背景主题设置及多项优化和修复。 下载链接:[WGCLOUD](http://www.wgstart.com) GitHub 仓库:[https://github.com/tianshiyeben/wgcloud](https://github.com/tianshiyeben/wgcloud)
|
8月前
|
编解码 安全 网络安全
指纹浏览器中HTTP代理IP的重要性及使用原因
随着数字化发展,网络安全和隐私保护成为核心需求,指纹浏览器应运而生。它通过客户端信息唯一标识用户身份。搭配HTTP代理IP可增强安全性,具体表现为:1. 保护用户地址;2. 提高信息安全;3. 防止指纹检测;4. 增强网络安全。HTTP代理以其稳定性、安全性,在网络营销等领域发挥重要作用,二者结合为用户提供更强的隐私和安全保护。
276 34
|
9月前
|
搜索推荐 小程序 物联网
基于HarmonyOS 5.0的元服务:技术架构、应用场景与未来发展【探讨】
鸿蒙OS 5.0推出的元服务(Super Service)是一种创新的服务架构,旨在提供无缝的跨设备体验。它具备无感知启动、跨设备共享和智能推送等特点,适用于智能家居、车载系统、即时通讯等场景。与传统应用及微信小程序相比,元服务更轻量、跨平台能力强,且无需下载安装。未来,元服务将通过AI增强智能化,并扩展到更多行业,如智慧医疗、智能零售等,推动物联网和智慧城市的发展。然而,其发展仍面临平台依赖、隐私安全等挑战。
基于HarmonyOS 5.0的元服务:技术架构、应用场景与未来发展【探讨】
|
9月前
|
人工智能 PyTorch 算法框架/工具
StableAnimator:复旦联合微软等机构推出的端到端身份一致性视频扩散框架
StableAnimator是由复旦大学、微软亚洲研究院、虎牙公司和卡内基梅隆大学联合推出的端到端身份一致性视频扩散框架。该框架能够根据一张参考图像和一系列姿态,直接合成高保真度且保持人物身份一致性的视频,无需任何后处理工具。本文详细介绍了StableAnimator的主要功能、技术原理以及如何运行该框架。
274 7
StableAnimator:复旦联合微软等机构推出的端到端身份一致性视频扩散框架
|
人工智能 IDE Devops
当「软件研发」遇上 AI 大模型
大模型和软件工具链的结合,使软件研发进入下一个时代。那它第一个落脚点在哪?实际上就是辅助编程,所以我们就开始打造了通义灵码这款产品,它是一个基于代码大模型的的 AI 辅助工具。本文会分为三个部分来分享。第一部分先介绍 AIGC 对软件研发的根本性影响,从宏观上介绍当下的趋势;第二部分将介绍 Copilot 模式,第三部分是未来软件研发 Agent 产品的进展。
436 93
|
11月前
|
Python
Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割
209 3
|
搜索推荐 前端开发 程序员
如何在浏览器中搜索内容自动过滤CSDN的相关文章,一次设置永久过滤
这篇文章介绍了如何在浏览器中设置搜索时自动过滤掉CSDN的相关文章,提供了具体的浏览器设置步骤和推荐使用的搜索引擎。
如何在浏览器中搜索内容自动过滤CSDN的相关文章,一次设置永久过滤
|
机器学习/深度学习 存储 自然语言处理
机器学习 —— 使用机器学习进行情感分析 详细介绍版
机器学习 —— 使用机器学习进行情感分析 详细介绍版
502 1
|
人工智能 自然语言处理 云计算
软件开发的最新趋势和未来展望
软件开发领域正处于快速发展的阶段,不断涌现出新的技术和方法。从人工智能、云计算到低代码开发,这些趋势都在推动着软件开发的革新和创新。未来,随着技术的不断进步,我们可以期待更多令人激动的变革和机遇。无论是开发者还是业务,都应该保持敏锐的洞察力,及时采纳新技术,以适应不断变化的软件开发领域。
722 1
软件开发的最新趋势和未来展望
|
运维 监控 前端开发
阿里云数据库发展历程及产品简介(一)
阿里云数据库发展历程及产品简介(一)
747 0