/*----------------------------学习篇--全文索引---------------------------*/
use Northwind
go
/****** Object: Table [dbo].[Employees] Script Date: 04/29/2015 17:42:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Employees](
[EmployeeID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[LastName] [nvarchar](20) NOT NULL,
[FirstName] [nvarchar](10) NOT NULL,
[Title] [nvarchar](30) NULL,
[TitleOfCourtesy] [nvarchar](25) NULL,
[BirthDate] [datetime] NULL,
[HireDate] [datetime] NULL,
[Address] [nvarchar](60) NULL,
[City] [nvarchar](15) NULL,
[Region] [nvarchar](15) NULL,
[PostalCode] [nvarchar](10) NULL,
[Country] [nvarchar](15) NULL,
[HomePhone] [nvarchar](24) NULL,
[Extension] [nvarchar](4) NULL,
[Photo] [image] NULL,
[Notes] [ntext] NULL,
[ReportsTo] [int] NULL,
[PhotoPath] [nvarchar](255) NULL,
CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
(
[EmployeeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD CONSTRAINT [FK_Employees_Employees] FOREIGN KEY([ReportsTo])
REFERENCES [dbo].[Employees] ([EmployeeID])
GO
ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [FK_Employees_Employees]
GO
ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD CONSTRAINT [CK_Birthdate] CHECK (([BirthDate] < getdate()))
GO
ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [CK_Birthdate]
GO
--开启Northwind的全文检索功能
exec sp_fulltext_database 'enable'
--为northwind创建一个全文索引'cat_desc'
exec sp_fulltext_catalog 'cat_desc','create'
--在employees表上,在PK_employees索引是提供的引用全文索引的唯一列
exec sp_fulltext_table
'Employees', --表名
'create', --动作
'cat_desc', --全文索引名
'PK_Employees' --sqlserver的索引名,一般为主键索引
--在employee表上创建的全文索引添加到列'Notes'
exec sp_fulltext_column
'employees', --表名
'Notes', --列名
'add' --动作为添加,即将Notes列加入到全文索引中
--执行下列语句后发现没有返回记录,原因:记录匹配的行我们还没有组装全文索引
select EmployeeID,LastName,FirstName from Employees
where contains(*,'University')
--使用完全组装:
exec sp_fulltext_table 'Employees','start_full'
--完全组装全文索引后再次执行上述语句,发现有6条记录
select EmployeeID,LastName,FirstName from Employees
where contains(*,'University')