关于SQL Server 的全文搜索功能详解


当前第2页 返回上一页

contains谓词返回的结果是布尔值,如果全文索引列中包含指定的关键字或查找模式(pattern),返回TRUE;否则,返回FALSE。

contains谓词支持word查询和短语查询,word是指单个分词,短语(phrase)是由多个word和间隔的空格组成的,对于短语,必须使用双引号,将多个word组成一个短语。

1,逻辑组合查询

使用and ,and not, 或 or 逻辑运算符 匹配多个word 或 多个phrase

1

2

CONTAINS(Name, '"Mountain" OR "Road" ')

CONTAINS(Name, ' Mountain OR Road ')

2,前缀查询

使用contains谓词进行前缀匹配,和like 'prefix%'功能相同,只不过contains谓词使用“*”作为通配符,“*”匹配0,1或多个字符,前缀匹配的写法是:'"prefix*"',全文索引只能执行前缀匹配。

1

2

CONTAINS(Name, ' "Chain*" ')

CONTAINS(Name, '"chain*" OR "full*"')

3,查询同义词(thesaurus)或词干(stemmer)

Stemmer(词干),例如,根据语法规程,英语的动词 根据数(单数,复数),人称,时态的不同而存在不同的变化形式,这些单词都是同源的。

1

CONTAINS(Description, ' FORMSOF (INFLECTIONAL, ride) ')

THESAURUS (同义词),需要导入XML进行配置,SQL Server 提供一个默认的Thesaurus file,是Empty的。如果在Thesaurus file 配置“Author”,“Writer”,“journalist” 是同义词,在使用fulltext index查询时,只要满足任意一个同义词,都匹配成功。

1

CONTAINS(Description, ' FORMSOF (THESAURUS, author) ')

4,距离查询

使用 near 函数,查询匹配相邻分词的数据行,near函数的定义如下,用于需要在查询模式中指定距离查询的查询模式:

1

NEAR ( ( { <simple_term> | <prefix_term> } [ ,…n ] ) [, <maximum_distance> ] [, <match_order> ] )

例如:使用Near 函数指定相邻分词的距离和匹配顺序,near((term1,term2,term3),5)表示任意两个term之间的距离不能超过5, near((term1,term2,term3),5,true),表示任意两个term的距离不能超过5,并且按照 term1,term2,term3的顺序存在于字符串中。

1

2

3

4

5

6

--regardless of the intervening distance and regardless of order

CONTAINS(column_name, 'NEAR(term1,"term3 term4")')

--searches for "AA" and "BB", in either order, within a maximum distance of five

CONTAINS(column_name, 'NEAR((AA,BB),5)')

--in the specified order with regardless of the distance

CONTAINS(column_name, 'NEAR ((Monday, Tuesday, Wednesday), MAX, TRUE)')

对于 near((term1,term2,term3),5,true),term1 和 term5之间最多存在5个term,不包括内部的搜索分词,“term2”,例如:

1

CONTAINS(column_name, 'NEAR((AA,BB,CC),5)')

这个查询会匹配下面的文本,注意,内部的搜索分词CC没有计算距离:

1

BB one two CC three four five AA

例如,在原文本中,分词bike和control的最大距离不能超过10,分词bike必须出现在分词control的前面:

1

CONTAINS(Comments , 'NEAR((bike,control), 10, TRUE)')

SQL Server提供的全文搜索功能,比LIKE关键字丰富,具备初级的全文搜索功能,速度快,维护简单,缺点是,全文搜索功能非常有限,在实际的开发中,可以配合开源的全文搜索引擎,例如,Solr,Elasticsearch等来开发功能更强大的全文搜索功能。

相关推荐:

PlateSpin备份时SQL Server的信息介绍

Python操作SQL Server数据库的方法

SQL server 数据库的数据完整性

以上就是关于SQL Server 的全文搜索功能详解的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

sql是什么型数据库管理系统

小编带你深入解析sql Server索引的原理

sql Server是什么,能干什么

如何将access数据库转换为sql Server

sql Server:alter database name的问题

介绍sql Server临时表和游标实例用法

如何解决mysql Server错误10038的问题

sql Server怎么创建数据库?

sql Server约束

navicat连接sql Server报错08001怎么办

更多相关阅读请进入《Server》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...