现在的位置: 首页 > 综合 > 正文

SQL Server:全文检索中的数据填充问题

2012年01月11日 ⁄ 综合 ⁄ 共 877字 ⁄ 字号 评论关闭
代码

--创建测试的数据库
CREATE DATABASE db
GO

USE db

--创建测试的表
CREATE TABLE tb(id int IDENTITY,col ntext,CONSTRAINT PK_tb PRIMARY KEY(id))
INSERT tb SELECT N'若无其事咬牙切齿'
UNION ALL SELECT N'车水马龙abcd因小而失大'
GO

--初始化全文索引
EXEC sp_fulltext_database 'enable'
GO

--创建一个名为 test 的全文目录
EXEC sp_fulltext_catalog 'test''create' 
GO

--创建并填充全文索引
EXEC sp_fulltext_table 'tb','create','test','PK_tb'
EXEC sp_fulltext_column 'tb','col','add',0x0804
EXEC sp_fulltext_table 'tb','start_change_tracking'
EXEC sp_fulltext_table 'tb','Start_background_updateindex'
GO

--立即检索数据,会发现检索不到数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')
WAITFOR DELAY '00:00:01'
--延时后可以检索到数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')

--插入一条新数据
INSERT tb SELECT N'若abcd无其事咬牙切齿'
--立即,检索不到新加入的数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')
WAITFOR DELAY '00:00:15'
--延时后可以检索到数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')
GO

--删除测试
USE master
DROP DATABASE db

 

抱歉!评论已关闭.