数据库数据执行任意文本查询:

1.使用FREETEXT谓词 FREETEXT接受两个参数。

第一个参数表示要搜索的列,可以提供列名,或者用*字符搜索表中的所有列。

第二个参数表示要搜索的短语。

例: select Title from Titles where FREETEXT(Title,'secret computer')

该SQL语句将数据库表Titles中的Title列中的内容包括secret或computer的纪录查询出来 。

2.使用FREETEXTTABLE函数 FREETEXTTABLE接受三个参数。

第一个参数表示要搜索的表,

第二个参数表示要搜寻的列,

第三个参数表示要搜索的短语。它返回一个表,表中包含KEY和Rank两列,key表示与此匹 配相关联的纪录的惟一键。rank表示结果与查询的匹配程度,1000表示最佳,0表示最差。

例:select * from Freetexttable(Titles,Title,'a book about silicon valley') searchTable

此SQL语句返回表searchTable,表中有两列,key和rank。

数据库数据的布尔查询:

1.使用CONTAINS谓词

CONTAINS接受两个参数:要搜索的列和搜索短语。

1)搜索特定的词或短语(简单词)

例:select Title from Titles where contains(Title,'computer and not cooking')

此例返回title里包含computer的纪录不返回包含cooking的纪录,因为 and not。

如果短语中有词组

如:select student_id,student_name from students where CONTAINS( address, '"HEIBEI province"' );也可以用CONTAINS( address, '"HEIBEI province"' )

2)执行前缀搜索(前缀词)

如果查询以‘hu’开头的地址:

SELECT student_id,student_name FROM students WHERE CONTAINS( address, '"hu*"' )

这里是‘*’,而不是‘%’。

3)搜索特定词的变形(派生词)

1 SELECT Comments, ReviewerName
2 FROM Production.ProductReview
3 WHERE CONTAINS (Comments, 'FORMSOF(INFLECTIONAL, "foot")')

4)使用加权值搜索词或短语(加权词)

1 SELECT AddressLine1, KEY_TBL.RANK
2 FROM Person.Address AS Address INNER JOIN
3 CONTAINSTABLE(Person.Address, AddressLine1, 'ISABOUT ("Bay*",
4          Street WEIGHT(0.9),
5          View WEIGHT(0.1)
6          ) ' ) AS KEY_TBL
7 ON Address.AddressID = KEY_TBL.[KEY]
8 ORDER BY KEY_TBL.RANK DESC

5)查询 varbinary(max) 和 xml 列

如果 varbinary(max)、varbinary 或 xml 列是全文索引列,则与任何其他全文索引列一样,可以使用全文谓词(CONTAINS 和 FREETEXT)以及函数(CONTAINSTABLE 和 FREETEXTTABLE)来查询该列。

单个 varbinary(max) 或 varbinary 列可以存储多种类型的文档。 SQL Server 支持安装了相应筛选器并且在操作系统中可用的任何文档类型。 每个文档的文档类型由该文档的文件扩展名标识。 例如,对于 .doc 文件扩展名,全文搜索将使用支持 Microsoft Word 文档的筛选器。

全文引擎可以利用操作系统中安装的现有筛选器。 在您可以使用操作系统筛选器、断字符和词干分析器之前,您必须将它们加载到服务器实例中,如下所示:

EXEC sp_fulltext_service @action='load_os_resources', @value=1

--varbinary(max) 或 varbinary 数据

若要对 varbinary(max) 列创建全文索引,全文引擎需要访问 varbinary(max) 列中文档的文件扩展名。 此信息必须存储在一个称为“类型列”的表列中,该列必须与全文索引中的 varbinary(max) 列相关联。 在为文档创建索引时,全文引擎将使用类型列中的文件扩展名来标识要使用的筛选器。

--xml 数据

xml 数据类型列仅存储 XML 文档和片段,并且只有 XML 筛选器用于此类文档。 因此,无需类型列。 在 xml 列上,全文索引会为 XML 元素的内容创建索引,但会忽略 XML 标记。 不为数值的属性值都会进行全文索引。 元素标记用作标记边界。 支持包含多种语言的格式正确的 XML 或 HTML 文档和片段。

6)使用布尔运算符 – AND、OR 和 NOT – 在 CONTAINS 和 CONTAINSTABLE 中

CONTAINS 谓词和 CONTAINSTABLE 函数使用相同的搜索条件。 它们都支持使用布尔运算符(AND、OR、AND NOT)将多个搜索词组合起来,以执行逻辑运算。 例如,可以使用 AND 查找既包含“latte”又包含“New York-style bagel”的行。 例如,可以使用 AND NOT 查找包含“bagel”但不包含“cream cheese”的行。

1 SELECT Description
2 FROM Production.ProductDescription
3 WHERE ProductDescriptionID <> 5 AND
4    CONTAINS(Description, 'aluminum AND spindle')

2.使用CONTAINSTABLE谓词 CONTAINSTABLE接受三个参数:

要搜索的表,要搜索的列和搜索的短语.

例:select * from containstable ( Titles,Title,'Cooking AND NOT Computer')

该例返回包含key和rank两列的表

转载于:https://www.cnblogs.com/javaleon/p/4142427.html

FREETEXT FREETEXTTABLE CONTAINS CONTAINSTABLE相关推荐

  1. SQLServer书写规范梳理

    今天给大家分享SQLServer书写规范笔记,希望对大家能有所帮助! 1.在名称中仅使用字母.数字和下划线 要在名称中仅使用字母.数字和下划线,主要是因为这些字符可以被方便的移植到编程语言中.在应用程 ...

  2. editplus来编写SQL

    时比较喜欢用editplus编辑器,到了新公司后用的是ultra edit发现UE太庞大了,觉得还是ep好,小而精悍,用它来写JAVA程序,HTML程序和JSP程序,都很方便,但是最近我出于习惯用ed ...

  3. SQL保留字,命名数据库、表、列和其他数据库对象时勿用

    SQL是由关键字组成的语言,关键字是一些用于执行 SQL操作的特殊词汇.在命名数据库.表.列和其他数据库对象时,一定不要使用.摘自SQL必知必会第四版 以下是sql保留字 文字版 ABORT ABSO ...

  4. sql中contains,like,patindex ,charindex和freetext语句的区别?

     可以通过like谓词来检索信息,但是like谓词在检索时是不区分大小写的,而使用contains 谓词在数据库中检索信息则可以做到区分大小写的功能,同时contains在某些方面所提供的文本查询能力 ...

  5. java查看sql视图_数据库的查询与视图

    第4章 数据库的查询和视图 4.1.1 选择列 通过SELECT语句的项组成结果表的列. ::= SELECT [ ALL |DISTINCT ] [ TOP n [ PERCENT ] [ WITH ...

  6. SQLSERVER 2008 R2中的全文检索

    最近在做全文搜索的内容,google了一下全文检索,发现了一些问题,现在总结如下:   全文索引和查询概念(摘自SQL 联机帮助) SQL Server 2008 为应用程序和用户提供了对 SQL S ...

  7. 保留关键字 (Transact-SQL) user 也是,哎

    SQL Server 2005   Microsoft SQL Server 2005 使用保留关键字来定义.操作或访问数据库. 保留关键字是 SQL Server 使用的 Transact-SQL ...

  8. MS SqlServer中少用但是好用的SQL语句

    代码 /* -- 2010-02-26  -- 布朗 -- QQ:156298979 */ -- with ties可以附加与排序字段相同值的多个行 select  top 3  with ties  ...

  9. SQL Server 2005将某些数据库行为设置为与指定的 SQL Server 版本兼容

    语法 sp_dbcmptlevel [ [ @dbname = ] name ] [ , [ @new_cmptlevel = ] version ] 参数 [ @dbname = ] name 要为 ...

  10. 使用Microsoft SQL Server 2000全文搜索功能构建Web搜索应用程序 --作者:Andrew B. Cencini...

    [摘要]了解如何充分利用SQL Server 2000的全文搜索功能.本文包含有关实现最大吞吐量和最佳性能的几点提示和技巧. 概述 使用Microsoft© SQL Server 2000的全文搜索功 ...

最新文章

  1. 【JAVA语法】03Java-继承性
  2. windows 技巧篇-查看文件夹被那个进程占用,文件夹占用解除方法
  3. linux 变量获取问题,有关read命令从管道输出读取变量参数的问题
  4. pythonslice_shift_Pandas 解决dataframe的一列进行向下顺移问题
  5. 超级直播sop直播源.zip_超级直播app壳 打造自己的直播app
  6. 10以内数的组成分解图_学前儿童如何学习20以内的加减法,收藏了
  7. ActiveMQ在windows下启动失败解决方案
  8. asp.net core 3.0 中使用 swagger
  9. linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法
  10. react-navigation(6.0.6版本)使用详解(基于RN0.65*版本)
  11. MapReduce 1.x VS 2.x架构对比
  12. 番外篇--1. 简历优化
  13. 2017年第八届CSTQB®国际软件测试高峰论坛议题征集启动
  14. 简单聊聊MD5和SHA-256加密
  15. IOS苹果开发者账号封号的规避心得,利用好防关联工具避免APP下架问题
  16. 双卡手机,sim卡状态改变测试
  17. 自定义AVA数据集流程及在SlowFast中训练
  18. 快问快答,MySQL面试夺命20问
  19. CVPR 2018 论文解读(部分)
  20. python的内置数据结构_Python基础知识2-内置数据结构(上)

热门文章

  1. 如果你没去 GDD,那可真是一种遗憾!
  2. 系统运维包括哪些内容_UI设计内容包括哪些?
  3. __str__和__repr__
  4. 实战build-react(二)-------引入Ant Design(增加)
  5. fiddler抓包后Jmeter实现登录接口
  6. 总结的几个cocoapods的几个常见问题
  7. 固定dll的加载基址的方法
  8. 文件间调用变量(extern,include)[转]
  9. 无法安装数据库关系图支持对象的解决方法
  10. VC++窗口创建过程,图形绘制,时钟程序