全文本检索的应用(2)

原创 2001年07月17日 17:52:00

CONTAINS 语法
我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')。

我们通过例子来学习,假设有表 students,其中的 address 是全文本检索的列。
1. 查询住址在北京的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'beijing' )
remark: beijing是一个单词,要用单引号括起来。

2. 查询住址在河北省的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province"' )
remark: HEBEI province是一个词组,在单引号里还要用双引号括起来。

3. 查询住址在河北省或北京的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province" OR beijing' )
remark: 可以指定逻辑操作符(包括 AND ,AND NOT,OR )。

4. 查询有 '南京路' 字样的地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'nanjing NEAR road' )
remark: 上面的查询将返回包含 'nanjing road','nanjing east road','nanjing west road' 等字样的地址。
          A NEAR B,就表示条件: A 靠近 B。

5. 查询以 '湖' 开头的地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"hu*"' )
remark: 上面的查询将返回包含 'hubei','hunan' 等字样的地址。
          记住是 *,不是 %。

6. 类似加权的查询
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'ISABOUT (city weight (.8), county wright (.4))' )
remark: ISABOUT 是这种查询的关键字,weight 指定了一个介于 0~1之间的数,类似系数(我的理解)。表示不同条件有不同的侧重。

7. 单词的多态查询
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'FORMSOF (INFLECTIONAL,street)' )
remark: 查询将返回包含 'street','streets'等字样的地址。
         对于动词将返回它的不同的时态,如:dry,将返回 dry,dried,drying 等等。

以上例子都使用英文,不使用中文是因为有的查询方式中文不支持,而且我的计算机是英文系统

付:对《全文检索1得质疑》:

5. 更新全文本索引的过程比常规索引要耗时,而且也不象常规索引那样可以由数据库系统立即更新。
可以立即更新的
9. 如果在查询中包含 noise words ,就会引发错误,在应用程序中应去除这些 noise words。
不对,查询时会自己过滤掉noise word,只有查询的内容全是noise words时才会出现错误

全文本检索的应用(1) 

全文本检索的应用

基本知识  1. SQL Server7 的 DeskTop 版中没有全文本检索。  2. 一个表只能有一个全文本检索。  3. 被检索的表必须有单列的唯一索引。  4. 全文本的索引存储在文...
  • u014440209
  • u014440209
  • 2014年05月09日 19:19
  • 439

SQL Server--全文本检索的应用(一)

全文索引和全文检索是sql server 7.0的新增功能,它能够对数据中的字符类型列(如varchar、text等类型列)进行索引,并通过索引实现全文搜索查询。sql server常规索引与全文检索...
  • jqrsdsy
  • jqrsdsy
  • 2014年07月16日 15:33
  • 304

Mysql 全文本检索

mysql 全文索引 注意 并非所有的引擎都支持 全文检索 mysql最常用的引擎 INnodb 和 myisam 后者支持全文检索 前者不支持 创建表的时候指定要检...
  • yujin753
  • yujin753
  • 2015年01月22日 11:07
  • 1331

1,2,3,4,5全排列--使用循环(多层循环)--枚举法

/* 题目标题: 1、2、3、4、5形成的全排列 方法---枚举法 12345形成的全排列组成的肯定是一个5位数 分别用n1,n2,n3,n4,n5 表示全排列的位置1,2,3,4,5的数字 ...
  • smallgyy
  • smallgyy
  • 2013年05月17日 07:56
  • 1247

文本检索模式的学习过程与应用

|*—*|模式构造(算法一:产生各种包含问题与答案的模式, 主要是用后缀树进行模式学习) 第一步: 用问题+答案搜索 第二步:处理搜索出来的1000条数据文本 第三步:用正则表达式保留...
  • wangxiaopeng0329
  • wangxiaopeng0329
  • 2016年05月03日 11:14
  • 135

【新书上架】 | 《全栈应用开发:精益实践》——历时两年二十万余字

两年前,从 RePractise 的一篇文章里,我开始了 Growth 应用及电子书的编写。Growth 整个系列的内容在 GitHub 上已经有近万个 star。今天我们带来了 Growth 的纸质...
  • gmszone
  • gmszone
  • 2017年05月31日 11:04
  • 2689

python根据BM25实现文本检索

根据BM25实现文本检索
  • github_39281554
  • github_39281554
  • 2017年06月23日 21:26
  • 222

为什么要学习angularjs2

Angular1.x显然非常成功,那么,为什么要剧烈地转向Angular2? 1.性能的限制 AngularJS当初是提供给设计人员用来快速构建HTML表单的一个内部工具。随着时间的推移,各种特性 ...
  • shmily__35
  • shmily__35
  • 2017年03月01日 15:00
  • 937

分治法实现全排列

//分治法实现全排列 //我们将使用分治法实现一个全排列算法。先来看一下算法实现后的效果: //['a','b','c']. //permutation   //["a", "b", "c"]...
  • u013240812
  • u013240812
  • 2014年03月06日 12:49
  • 1140

DL学习笔记【9】caffe参数调节-全连接层

转自:http://www.cnblogs.com/lutingting/p/5240714.html 在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(...
  • Sun7_She
  • Sun7_She
  • 2016年07月26日 13:27
  • 2593
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:全文本检索的应用(2)
举报原因:
原因补充:

(最多只允许输入30个字)