fulltext catalog:全文目录
为数据库创建全文目录。一个全文目录可以包含多个全文索引,但一个全文索引只能用于构成一个全文目录。每个数据库可以不包含全文目录或包含多个全文目录。
不能在 master、model 或 tempdb 数据库中创建全文目录。
fulltext index : 全文索引对数据库中的表或索引视图创建全文索引。每个表或索引视图只允许有一个全文索引,并且每个全文索引会应用于单个表或索引视图。
全文索引最多可以包含 1024 个列。
示例:
fulltext catalog 示例:
IF NOT EXISTS (SELECT * FROM sys.fulltext_catalogs WHERE NAME= 'CatalogFullText1')
CREATE FULLTEXT CATALOG [CatalogFullText1]
IN PATH N'D:Data\FullTextCatalog'
WITH ACCENT_SENSITIVITY = ON
AS DEFAULT
解释:
指定该目录的全文索引是否区分重音。在更改此属性后,必须重新生成索引。默认情况下,将使用数据库排序规则中所指定的区分重音设置。若要显示数据 库排序规则,请使用 sys.databases 目录视图。
若要确定全文目录当前的区分重音属性的设置,请对 catalog_name 使用具有 accentsensitivity 属性值的 FULLTEXTCATALOGPROPERTY
函数。如果返回值为“1”,则全文目录区分重音;如果该值为“0”,则该目录不区分重音。
指定该目录为默认目录。如果在未显式指定全文目录的情况下创建全文索引,则将使用默认目录。如果现有全文目录已标记为 AS DEFAULT,
则将新目录设置为 AS DEFAULT 将使该目录成为默认全文目录。
fulltext index 示例:
IF NOT EXISTS (SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID('cataloglist1'))
BEGIN
CREATE FULLTEXT INDEX ON cataloglist1 (FullTextIndexData language Japanese)
KEY INDEX idx_fulltext_auto_searchcataloglist1 ON
CatalogFullText1
END;
解释:
OBJECT_ID('cataloglist1):返回表'cataloglist1的object_id
SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID('cataloglist1'):查看数据库中是否有对于N'cataloglist1表的fulltext index
存储在 column_name 中的数据的语言。
language_term 为可选参数,可以将其指定为与语言区域设置标识符 (LCID) 对应的字符串、整数或十六进制值。
如果未指定任何值,则使用 SQL Server 实例的默认语言。
如果指定了 language_term,则它表示的语言将用于对存储在 char、nchar、varchar、nvarchar、text 和 ntext 列中的数据进行索引。
如果未针对列将 language_term 指定为全文谓词的一部分,则该语言就是查询时所使用的默认语言。
若是没有的话,那么就创建新的。
table_name 的唯一键索引的名称。KEY INDEX 必须是唯一的单键列,不可为 Null。为全文唯一键选择最小的唯一键索引。
ON CatalogFullText1 就是上面所建立的全文目录。
idx_fulltext_auto_searchcataloglist1:
IF NOT EXISTS (SELECT * FROM sys.indexes fti WHERE fti.name = 'idx_fulltext_auto_searchcataloglist1')
BEGIN
CREATE UNIQUE NONCLUSTERED INDEX [idx_fulltext_auto_searchcataloglist1] ON [dbo].[cataloglist1]
(
[FullTextUniqueKey] ASC
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF)
ON [PRIMARY]
END;