Mysql学习2
来源:互联网 发布:小学生学编程视频教程 编辑:程序博客网 时间:2024/04/20 01:58
1、Mysql 全文本搜索使用引擎MyISAM,要进行全文本搜索,必须索引被搜索的列,而且要随着数据的改变不断地重新索引。在对表列进行适当设计后,Mysql会自动进行所有的索引和重新索引。
在索引之后,SELECT可与Match()和Against()一起使用以实际执行索引。Match()指定要搜索的列,Against()指定搜索表达式。例:
输入:mysql> select note_text
-> from productnotes
-> where match(note_text) against('rabbit');
输出:|note_text|
| Customer complaint: rabbit has been able to detect trap, food apparently less effective now.|
| Quantity varies, sold by the sack load.All guaranteed to be bright and orange, and suitable for use as rabbit bait. |
2、查询扩展
用来设法放宽所返回的全文本搜索结果的范围(关键词 WITH QUERY EXPANSION)。
使用时Mysql对数据和索引进行两遍扫描来完成搜索:
首先,进行一个基本的全文本搜索,找出搜索条件匹配的所有行;
其次,Mysql检查这些匹配行并选择所有有用的词。
再次,Mysql再次进行全文本搜索,这次不仅使用原来的条件,而且还使用所有有用的词。
利用查询扩展,能找出可能相关的结果,即使他们并不精确包含所查找的词。
3、布尔文本搜索 (关键词 IN BOOLEAN MODE)
以布尔方式可以提供如下内容的细节:
要匹配的词;要排斥的词(如果某行包含这个词,则不返回该行,即使她包含其他指定的词也是这样);排列提示(指定某些词比其他词更重要,更重要的词等级更高);表达式分组等。
布尔操作符
说明+包含,词必须存在-排除,词必须不出现>包含,而且增加等级值<包含,且减少等级值()把词组成子表达式(允许这些子表达式作为一个组被包含、排除、排列等)~取消一个词的排序值*词尾的通配符" "定义一个短语(与单个词的列表不一样,它匹配整个短语以便包含或排除这个短语)例:
输入:mysql> select note_text
-> from productnotes
-> where Match(note_text) Against('heavy -rope*' IN BOOLEAN MODE);
输出:| note_text |
| Customer complaint:Not heavy enough to generate flying stars around head of victim. If being purchased for dropping, recommend ANV02 or ANV03 instead. |
分析: -rope*指示Mysql排除包含rope*(任何以rope开始的词,包括ropes)的行。
关于全文本搜索的一些重要声明:
* 在索引全文本数据时,短词被忽略且从索引中排除。短语定义为那些具有3个或3个一下字符的词。
*Mysql带有一个内建的非用词(stopword)列表,这些词在索引全文数据时总是被忽略。如果需要,可以覆盖这个列表。
* 许多词出现的频率很高,搜索他们没有用处(返回太多的结果)。Mysql规定了一条50%规则,如果一个词出现在50%的行中,则将它作为一个非用词忽略。50%规则不用于INBOOLEAN MODE。
* 如果表中的行数少于3行,则全文搜索不返回结果。
* 忽略词中的单引号。如,don’t索引为dont
* 不具有词分隔符的语言不能恰当地返回全文本搜索结果。
* 仅在MyISAM数据库引擎中支持全文本搜索。
- MySQL学习2
- Mysql学习2
- MySQL学习笔记2
- mysql学习2
- MySQL学习笔记 2
- Mysql学习2
- mysql 学习笔记2
- MYSQL学习笔记2
- MySQL学习笔记2
- MySQL学习2
- mysql学习笔记2
- MySQL学习总结2
- mysql学习(2)
- 2--mysql学习笔记
- MySQL学习2
- mySql学习(2)
- mysql学习(2)
- mysql学习笔记(2)
- 影响因子查询网站
- Git使用教程之一基础篇
- 阿尔萨斯的背叛 ----没人理解的死亡骑士续写传奇
- 黑马程序员_学习日记19_jQuery
- poj 1298 The Hardest Problem Ever
- Mysql学习2
- Java ObjectInputStream与ObjectOutputStream阻塞(block)问题
- android 自定义Dialog背景透明及显示位置设置的方法
- Ext Grid 状态保存
- Android计算地图上两点距离
- C语言实现一个循环移位函数
- Git使用教程之二技巧篇
- 【物联网智能网关-02】获取摄像头数据+显示
- POI示例