MSSQL的【全文检索】配置设置(DDL)

来源:互联网 发布:外国女人中国男人知乎 编辑:程序博客网 时间:2024/06/06 04:31

 

 

 

全文检索,是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表的行联系接起来。

原创粉丝点击