全文检索,是MS-SQL中的一个特例组件(SQL Server FullText Search),可以对任何一个表中的任何一列,进行单词和短语以及他们多变的形式的查找,是基于(varchar,char,nchar,nvarchar,ntext,text)的列类型进行查找。
--
创建全文检索新目录
EXEC
SP_FULLTEXT_CATALOG
'
TextTest
'
,
'
CREATE
'

--
创建需要检索的表
EXEC
SP_FULLTEXT_TABLE
'
Employees
'
,
'
CREATE
'
,
'
TextTest
'
,
'
PK_Employees
'

--
创建需要检索的列
EXEC
SP_FULLTEXT_COLUMN
'
Employees
'
,
'
FirstName
'
,
'
ADD
'

EXEC
SP_FULLTEXT_COLUMN
'
Employees
'
,
'
LastName
'
,
'
ADD
'

EXEC
SP_FULLTEXT_COLUMN
'
Employees
'
,
'
Address
'
,
'
ADD
'

--
启用对这个表全文检索
EXEC
SP_FULLTEXT_TABLE
'
Employees
'
,
'
ACTIVATE
'

--
设置改目录上的的全文检索全部开始
EXEC
SP_FULLTEXT_CATALOG
'
TextTest
'
,
'
Start_FULL
'

--
查看现有的检索目录
EXEC
SP_HELP_FULLTEXT_CATALOGS

--
查看现有的检索表
EXEC
SP_HELP_FULLTEXT_TABLES

--
查看现有的检索列
EXEC
SP_HELP_FULLTEXT_COLUMNS
启用查找使用到的2个谓语(CONTAINS,FREETEXT),2个函数(CONTAINSTABLE,FREETEXTTABLE);
例如:
CONTAINTS主要用于词的查询;
SELECT
*
FROM
[
Employees
]
WHERE
CONTAINS
(Address,
'
"*你*"
'
)
FREETEXT主要用于短语和句子查询:
SELECT
*
FROM
[
Employees
]
WHERE
FREETEXT
(Description,
'
"Programmer With Love is good at show and talking,[有爱的程序员善于言表,] "
'
)
至于CONTAINSTABLE,FREETEXTTABLE分别和CONTAINSTS,FREETEXT类似,不过他一般不用于WHERE后面,一般用在SELECT的子查询里面,而且比CONTAINSTS,FREETEXT复杂的多,必须准确的把函数返回满足条件的行显示地同原始SQL SERVER表的行联系接起来。