博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 全文索引
阅读量:7091 次
发布时间:2019-06-28

本文共 2081 字,大约阅读时间需要 6 分钟。

一、创建全文索引

1、使用SSMS

2、使用T-SQL

Create FullText Index On Production.ProductDescription (Description) Key Index

PK_ProductDescription_ProductDescriptionID On AWCatalog With Change_Tracking Auto;

二、填充全文索引

1、使用SSMS

2、使用T-SQL

Alter FullText Index On Production.ProductDescription Start Full Population;

三、查询

1、FreeText函数

Select ProductDescriptionID, Description From Production.ProductDescription

Where FreeText(Description, N'bike');

2、FreeTextTable函数

select * from  FreeTextTable(Production.ProductDescription, Description, N'bike')

上述查询仅返两个列:Key、Rank 。

通常使用下述查询:

Select PD.ProductDescriptionID, PD.Description, KeyTable.[Key], KeyTable.Rank

from Production.ProductDescription As PD
Inner Join FreeTextTable (Production.ProductDescription, Description, N'bike')
As KeyTable On PD.ProductDescriptionID = KeyTable.[Key];

3、Contains函数

-- 查询完全匹配“bike”的所有行:
Select ProductDescriptionID, Description From Production.ProductDescription
Where Contains(Description, N'bike');

-- 查询完全匹配“bike”的行和包含“bike”前缀的所有词的行:

Select ProductDescriptionID, Description From Production.ProductDescription
Where Contains(Description, N'"bike*"');

-- 关键词Formsof、Inflectional、Thesaurus允许搜索项的变形匹配

-- Inflectional会使搜索处理搜索中的词干,例如,“drive”与“drove”、“driven”、“driving”匹配

Select ProductDescriptionID, Description From Production.ProductDescription
Where Contains(Description, N' FORMSOF (INFLECTIONAL,ride) ');

-- Thesaurus会匹配同义词,例如,“metal”会匹配“gold”、“aluminum”、“steel”等

Select ProductDescriptionID, Description From Production.ProductDescription
Where Contains(Description, N' FORMSOF (Thesaurus,metal) ');

注意:所有的词表文件安装时都为空。要使用词表匹配,必须填充这些文件。所有词表文件都是XML文件,位于默认的SQL Server安装路径下的FTDATA文件夹。

-- near可以搜索多个关键词(邻近词)

Select ProductDescriptionID, Description From Production.ProductDescription
Where Contains(Description, N'mountain Near bike ');

-- 还可以给特殊的搜索选项指派相对权重

Select ProductDescriptionID, Description From Production.ProductDescription
Where Contains(Description, 'ISABOUT (mountain weight (.8), bike weight (.2) ) ');

4、ContainsTable函数

ContainsTable函数与Contains函数的功能一样。然而,像FreeTextTable一样,它返回行集值(其中包含RANK和KEY列),这两列可以用来返回最匹配的项。

转载地址:http://msyql.baihongyu.com/

你可能感兴趣的文章
phpunit assert断言分类整理
查看>>
springMVC robots.txt 处理
查看>>
python2.0_s12_day19_前端模版使用
查看>>
PHP json_decode object时报错Cannot use object of type stdClass as array
查看>>
hibernate一对一外键双向关联
查看>>
SharePoint 2013 同步FBA认证用户
查看>>
二叉树的遍历实现
查看>>
Sublimetext 3 经常使用插件
查看>>
Educational Codeforces Round 11 C. Hard Process 二分
查看>>
Android Camera 使用一例,视频聊天app
查看>>
区块链代币(Token)笔记 — — 术语
查看>>
python 解析json讲解(demjson)
查看>>
Apache优化:修改最大并发连接数
查看>>
Golang--Hello World
查看>>
《火球——UML大战需求分析》(第1章 大话UML)——1.4 如何学好UML?
查看>>
某IT校招笔试
查看>>
分布式系统介绍-PNUTS
查看>>
归并分类
查看>>
php生成图片验证码
查看>>
Android Studio git 版本回退到最新的版本
查看>>