全文本搜索
来源:互联网 发布:618淘宝也买酒 编辑:程序博客网 时间:2024/04/30 07:55
理解全文本搜索
- 比LIKE、正则表达式更智能,不会因数据量增大损失性能。
并非所有引擎都支撑全文本
- 最常用的两个引擎MyISAM和InnoDB,前者支撑全文本搜索,而后者不支持。
使用全文本搜索
为进行全文本搜索,必须索引被搜索的列,而且要随着数据的改变不断地重新索引。对表列进行适当设计后,MySQL会自动进行所有的索引和重新索引。
在索引之后,SELECT可与Match()和Against()一起使用以实际执行搜索。
启用全文本搜索支持
CREATE TABLE productnotes( note_id int NOT NULL AUTO_INCREMENT, prod_id char(10) NOT NULL, note_date datetime NOT NULL, note_text text NULL, PRIMARY KEY(note_id), FULLTEXT(note_text) #此处是全文本搜索)ENGINE=MyISAM #更换为MyISAM引擎
- Match()内的值必须与FULLTEXT()定义中的相同,如果指定多个列,则必须顺序正确的列出它们。
- 为进行全文本搜索,MySQL根据FULLTEXT(…)的指示对它进行索引,()中可以索引单个列,也可以多个。
- FULLTEXT(…)尽量在create table 表名(…)中的最后面。
布尔文本搜索(没FULLTEXT也可用)
- 要匹配的词
- 要排斥的词
- 排列提示(某词比某词更重要,更重要的词等级更高)
- 表达式分组
例如:
SELECT note_text FROM productnotesWHERE Match(note_text)Against('heavy -rope*' IN BOOLEAN MODE);\#意思是匹配词heavy,但排除包含rope的词或者行
注意!
- 不要在导入数据时使用FULLTEXT:更新索引花时间,如果正在导入数据到一个新表,则不该此时启用FULLTEXT索引。应首先导入数据,然后修改表,定义FULLTEXT。
- 如果一个词的频率出现超过50%则忽略,不用于布尔文本搜索。
1 0
- mysql全文本搜索
- 全文本搜索
- 全文本搜索
- 数据库学习--全文本搜索
- MySQL的全文本搜索
- 全文本搜索 (For MySQL)
- MySQL全文本搜索Hello
- [My SQL] 全文本搜索
- 18 使用全文本搜索
- 黑马程序员-day2-全文本搜索
- 关于Mysql的全文本搜索功能
- 《MySQL必知必会学习笔记》:全文本搜索
- MySQL数据检索+查询+全文本搜索
- 本Blog可以可以支持Google全文搜索了!!!
- MYSQL入门学习之三:全文本搜索
- MYSQL入门学习之三:全文本搜索
- MySQL基本操作(三):全文本搜索
- MySQL基础(5)——全文本搜索
- 2017年1月18日 课堂笔记
- php(utf8)跨站到asp(gb2312)乱码问题
- hiveserver2&&beeline&&java client
- 强连通分量
- ionic 上拉菜单的样式坑
- 全文本搜索
- glsl_optimizer(Shader自动优化器) 的使用
- 编写一个Java程序输出1!+2!+3!+……+10!的和
- c++之入门
- 高斯消元
- 数组的使用
- Javascript-字符串对象浅记
- jQuery-遍历
- Android中view转换为bitmap为null解决方案