SQL Server 全文索引

CONTAINS (Transact-SQL)  
索引的EF Core  
*
*
*
● 全文索引是针对数据表,只能对表创建全文索引,不能对数据库创建全文索引。
● 每个数据库可以不包含全文目录或包含多个全文目录,一个全文目录可以包含多个全文索引,但一个全文索引只能用于构成一个全文目录。
● 一个数据表只能创建一个全文索引,一个全文索引可以包含多个字段。
● 创建全文索引的表必须要有一个唯一的非空索引,并且这个唯一的非空的索引只能是一个字段,不能是组合字段。
● 每个表只允许有一个全文索引。若要对某个表创建全文索引,该表必须具有一个唯一且非 Null 的列。您可以对以下类型的列创建全文索引:char、varchar、nchar、nvarchar、text、
ntext、image、xml、varbinary 和varbinary(max),从而可对这些列进行全文搜索。对数据类型为 varbinary、varbinary(max)、image 或 xml 的列创建全文索引需要您指定类型列。类型
列是用来存储每行中文档的文件扩展名(.doc、.pdf、xls 等)的表列。
● 全文搜索由全文引擎提供支持。全文引擎有两个角色:索引支持和查询支持。
*
*
全文索引关键字
*
*
1、CONTAINS(全文谓词)
CONTAINS 谓词可以搜索:
● 词或短语。
● 词或短语的前缀。
● 与另一个词相邻的词。
● 由另一个词的词形变化而生成的词(例如,drive 一词是 drives、drove、driving 和 driven 词形变化的词干)。
● 使用同义词库确定的另一个词的同义词(例如,metal 一词可能有 aluminum 和 steel 等同义词)。
*
SELECT Name FROM Product WHERE CONTAINS(Name,'旅游') 
● 返回Product 表的 Name 和 Color 列中搜索 Red 一词
   SELECT Name,Color FROM Product WHERE CONTAINS((Name, Color), 'Red')
● 返回包含价格为 $80.99 且 Mountain 一词所有产品
   SELECT Name,ListPrice FROM Product WHERE ListPrice = 80.99 AND CONTAINS(Name, 'Mountain')
● 返回包含短语 Mountain 或 Road 的所有产品
   SELECT Name FROM Product WHERE CONTAINS(Name, ' Mountain OR Road ')
● 返回的所有产品名称中,其 Name 列中至少有一个词以前辍 chain 开头
   SELECT Name FROM Product WHERE CONTAINS(Name, ' "Chain*" ')
● 返回包含以 chain 或 full 为前缀的字符串的所有类别说明
   SELECT Name FROM Product WHERE CONTAINS(Name, '"chain*" OR "full*"')
*
*
2、FREETEXT(全文谓词)
*
select * from dbo.Business where freetext(Address,'带婴儿旅游')  
*
3、CONTAINSTABLE(全文函数)
*
*
4、FREETEXTTABLE(全文函数)
*
*


*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

你可能感兴趣的:(SQL,Server,sql全文索引)