仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 679|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL编程:全文本检索的使用(3)

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:46:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
“对于MySQL数据库,无论是在开发方面,还是支持方面,现在有大量强大的MySQL学习教程可以选择。每一个新手开发者可以轻松地使用MySQL数据库进行开发。CONTAINSTABLE语法
我们一般在FROM子句中利用CONTAINSTABLE,就象如许:SELECT*FROMtable_name,CONTAINTABLE(fulltext_table,fullText_column,searchcondition)WHERE......。

CONTAINSTABLE在查询体例上与CONTAINS几近一样,以是就不必赘述了。CONTAINSTABLE前往的是切合查询前提的表,在SQL语句中我们能够把它看成一个一般的表来利用。

我们看一个例子,对照这两种表的分歧。
SELECTFT_TBL.student_name,FT_TBL.student_score,KEY_TBL.RANK
FROMreportASFT_TBLINNERJOIN
CONTAINSTABLE(student,address,
ISABOUT(cityweight(.8),countywright(.4)))ASKEY_TBL
ONFT_TBL.student_id=KEY_TBL.[KEY]
ORDERBYKEY_TBL.RANK
CONTAINSTABLE前往的表包括有特别的两列:KEY,RANK。
在第一部分里我们就夸大了:被全文索引的表必需有独一索引。这个独一的索引列在前往的表中就成为KEY。我们一般把它作为表毗连的前提。

在某些网站搜刮时,了局中会呈现暗示婚配水平的数字,RANK与此相似。它的值在0~1000之间,标识每行与查询前提的婚配水平,水平越高,RANK的值年夜,一般情形下,依照RANK的降序分列。
FREETEXT语法
FREETEXT与CONTAINS相似,只是没有CONTAINS的精度高。在CONTAINS中,对查询前提的写法有良多请求,而FREETEXT就没有,能够是恣意的单词,词组或句子。看上面的例子:
SELECTCategoryName
FROMCategories
WHEREFREETEXT(Description,sweetestcandybreadanddrymeat)

FREETEXTTABLE语法
和CONTAINSTABLE一样,FREETEXTTABLE前往带有KEY,RANK的表。举例申明:
SELECTFT_TBL.CategoryName,
FT_TBL.Description,
KEY_TBL.RANK
FROMCategoriesASFT_TBLINNERJOIN
FREETEXTTABLE(Categories,Description,
sweetestcandybreadanddrymeat)ASKEY_TBL
ONFT_TBL.CategoryID=KEY_TBL.[KEY]
在ASP中利用全文本检索
Dimcnn
Dimrs
DimstrSQL

strSQL="SELECTbook_name"&_
"FROMbooks"&_
"WHERECONTAINS(description,"&Request("search_condition")&")"

Setcnn=Server.CreateObject("ADODB.Connection")
Setrs=Server.CreateObject("ADODB.RecordSet")

cnn.Open"provider=sqloledb;datasource=.;initialcatalog=books;userid=sa;pasword=;"
rs.OpenstrSQL,cnn


下面的例子非常复杂,仅为表示。只需把握了CONTAINS和CONTAINSTABLE的语法,在利用上和一样平常的ADO查询一样。

全文本检索的使用(1)

全文本检索的使用(2)
有的时候,一些缺失的功能可以通过别的办法来实现,例如,在MySQL4.1以前,你可以通过使用join方法来替代子查询的功能。在MySQL5.0中,大多数关系型数据库所要求的功能已经都具备。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-19 21:40:11 来自手机 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
柔情似水 该用户已被删除
板凳
发表于 2015-1-24 19:16:09 | 只看该作者
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
老尸 该用户已被删除
地板
发表于 2015-2-2 12:40:59 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
爱飞 该用户已被删除
5#
发表于 2015-2-7 19:47:04 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-23 08:52:32 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
深爱那片海 该用户已被删除
7#
发表于 2015-3-7 06:21:32 | 只看该作者
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
飘灵儿 该用户已被删除
8#
发表于 2015-3-21 08:54:50 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 03:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表