随笔 - 59  文章 - 70  trackbacks - 0
<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

常用链接

留言簿(5)

随笔分类

随笔档案

搜索

  •  

积分与排名

  • 积分 - 172918
  • 排名 - 338

最新评论

阅读排行榜

评论排行榜

可以使用 CONTAINS 谓词在数据库中检索特定的短语。当然,这样的查询可以使用 LIKE 谓词编写。但是,CONTAINS 的许多形式所提供的文本查询能力比 LIKE 要强。此外,与使用 LIKE 谓词不同的是,CONTAINS 检索总是区分大小写。

说明  对于那些区分大小写的语言(多数都基于拉丁语),全文检索查询以区分大小写的方式执行。但是,在日语中,有许多表示语音的拼字法,其中拼字规范化这一概念与不区分大小写类似,如 kana = 不区分。这种拼字规范化不被支持。

假定想在 Northwind 数据库内进行搜索,以查找短语"bean curd"。如果使用 CONTAINS 谓词,这就是一个很简单的查询。

				USE Northwind 
GO
SELECT Description
FROM Categories
WHERE Description LIKE '%bean curd%'
GO

		

或者,使用 CONTAINS:

				USE Northwind
GO
SELECT Description
FROM Categories
WHERE CONTAINS(Description, ' "bean curd" ')
GO

		

CONTAINS 谓词使用的函数表示法中,第一个参数是要检索的列的名称,第二个参数是全文检索条件。检索条件(此例中是"bean curd")可以很复杂,由一个或多个条件组成,这将在后面介绍。

CONTAINS 谓词支持使用复杂的语法在基于字符的列中检索:

  • 一个或多个特定的单词和/或短语(简单条件)。

    一个单词是一个或多个字符,中间没有空格或标点。有效的短语可以由带空格的多个单词组成,单词之间可以有标点也可以没有标点。例如,croissant 是一个单词,而 café au lait 是一个短语。这样的单词和短语称为简单条件。

  • 特定单词的变形(派生条件)。

    例如,检索单词 drive 的变形。如果表中的不同行包含单词 drive、drives、drove、driving 和 driven,那么所有这些都将包含在结果集中,因为其中每一个都可以从单词 drive 变形而来。

  • 以指定文本(前缀条件)打头的单词或短语。

    如果是短语,则该短语内的每个单词都被看作是一个前缀。例如,条件 auto tran* 与 automatic transmission 和 automobile transducer 匹配。

  • 使用加权值的单词或短语(加权条件)。

    例如,查找一个赋权值比另一个单词高的单词。这将返回排序的查询结果。

  • 与另一个单词或短语相近的单词或短语(邻近条件)。

    例如,查找一些行,这些行中单词 ice 与 hockey 相邻,或者短语 ice skating 与 ice hockey 相邻。

CONTAINS 谓词可以用 AND 和 OR 将这些条件中的几个结合起来,例如,要查找同一个启用全文的数据库列中所有有 latte 和 New York-style bagel 的行。不仅如此,还可以使用 AND NOT 对条件取反,例如 bagel and not cream cheese。

在使用 CONTAINS 时,记住 SQL Server 将从检索条件中去掉干扰词。干扰词是象 a、and、is 或 the 这样的词,这些词可能经常出现,但是在检索特定文本时没有真正的帮助。

posted on 2009-02-21 16:01 JasonChou 阅读(6627) 评论(0)  编辑  收藏 所属分类: database

只有注册用户登录后才能发表评论。


网站导航: