背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.19 了,所以,一些小的应用可以用它做全文搜索了,像sphinx和Lucene这样偏重的、需要配置或开发的,节省了成本。

这儿有一个原创的Mysql全文搜索的文章, mysql的全文搜索功能:
http://blog.csdn.net/bravekingzhang/article/details/6727541

基于mysql全文索引的深入理解:
http://www.jb51.net/article/37738.htm

为什么要设置 Mysql 的 ft_min_word_len=1:
http://blog.csdn.net/shilian_h/article/details/6215537

MySQL 全文搜索支持简述:
从MySQL 4.0以上 myisam引擎就支持了full text search 全文搜索,在一般的小网站或者blog上可以使用这个特性支持搜索。
那么怎么使用了,简单看看:
1.创建一个表,指定支持fulltext的列
  CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    title VARCHAR(200),
    body TEXT,
    FULLTEXT (title,body)
  );
2.插入一些数据作为测试
  INSERT INTO articles (title,body) VALUES
    ('MySQL Tutorial','DBMS stands for DataBase ...'),
    ('How To Use MySQL Well','After you went through a ...'),
    ('Optimizing MySQL','In this tutorial we will show ...'),
    ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
    ('MySQL vs. YourSQL','In the following database comparison ...'),
    ('MySQL Security','When configured properly, MySQL ...');
3.select查询fulltext的列 
  SELECT * FROM articles
    WHERE MATCH (title,body) AGAINST ('database');
查询结果:
  5        MySQL vs. YourSQL        In the following database comparison ...    
  1        MySQL Tutorial               DBMS stands for DataBase ...   
全文查询中的boolean语句, + -跟普通的搜索引擎语法一样
  SELECT * FROM articles WHERE MATCH (title,body)
     AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
innodb不支持fulltext,当然可以使用http://sphinxsearch.com/ sphinx来dump数据库数据支持全文搜索。
原文地址:http://www.javaarch.net/jiagoushi/700.htm

后记,MySQL 5.6.4里才添加了InnoDB引擎的Full-Text索引支持,或用张宴兄弟的基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计: http://blog.s135.com/post/360/
Q:
我想在查询时使用MATCH(...) AGAINST(...)语法,但是我的数据表引擎是Innodb,当我CREATE FULLTEXT INDEX的时候,返回提示The used table type doesn't support FULLTEXT indexes。
我想问的是在innodb引擎中是否不能使用FULLTEXT引擎?有什么替代品吗?可以使用MATCH(...) AGAINST(...)语法吗?
A:
MySQL 5.6.4里才添加了InnoDB引擎的Full-Text索引支持。
不能升级MySQL版本的话:
推荐用Lucene(ElasticSearch比较容易部署)或Sphinx这样的第三方解决方案。
innodb 不支持FULLTEXT类型的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好。
sphinx 是一个开源软件,提供多种语言的API接口,可以优化mysql的各种查询。
如果这个表更新不频繁,查询量不大,又赶时间,可以用触发器、定时任务或者其他类似的DBA技巧创建支持全文索引的镜像表(如MyISAM类型的),代码改动会小一些。
MySQL5.6 InnoDB FULLTEXTIndexes研究测试:
http://blog.csdn.net/zyz511919766/article/details/12780173

mysql 5.6.4支持nosql:
在最新的 mysql-5.6.4-labs-innodb-memcached 中,实现了简单的给予 key/value的nosql功能,其主要原理
就是mysqld除了监听3306端口之外,同时监听11211端口。使mysqld和memcached服务处在同一进程中。通过
数据库、表与字段的映射,将缓存在memcache的数据插入到映射的表中。安装包中提供了三张表:containers
cache_policies和config_options,表containers就提供了映射关系,表cache_policies提供了三种存储方式(
innodb_only数据只插入表,cache_only只缓存数据,caching即缓存数据又插入表),表config_options中提供
了一个默认分隔符“|”,就是说如果在表containers的values字段中定义了col1,col2...字段,那在设置缓存值时就
可以用val1|val2的形式,这样将会把val1插入到col1,val2插入到col2。

来自:http://blog.csdn.net/sunny5211/article/details/7357893

这个不能算是全文搜索, 只是传统的全表搜索。如果使用mysql的全文检查,在200万数据集上,不可能用那么长的时间的。
使用mysql全文检索的方法如下:
1. 配置mysql参数ft_min_word_len=1
在数据表的文本字段中创建fulltext索引。
2.将原始文本进行分词(处理成按空格分隔的字符串),可使用一些开源的分词模块实现。 再导入到mysql数据表中
3. 使用mysq select * from tb1 where title match'词语' 进行检索。
来自:http://www.oschina.net/question/123890_133459

作者:justwinit@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://www.justwinit.cn/post/7253/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

转载于:https://www.cnblogs.com/Yongzhouunknown/p/4814853.html

MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持相关推荐

  1. MySQL 全文搜索支持

    MySQL 全文搜索支持 从MySQL 4.0以上 myisam引擎就支持了full text search 全文搜索,在一般的小网站或者blog上可以使用这个特性支持搜索. 那么怎么使用了,简单看看 ...

  2. mysql scws_php利用scws实现mysql全文搜索功能的方法,_PHP教程

    php利用scws实现mysql全文搜索功能的方法, 本文实例讲述了php利用scws实现mysql全文搜索功能的方法.分享给大家供大家参考.具体方法如下: scws这样的中文分词插件比较不错,简单的 ...

  3. mysql scws_php利用scws实现mysql全文搜索功能的方法

    本文实例讲述了php利用scws实现mysql全文搜索功能的方法.分享给大家供大家参考.具体方法如下: scws这样的中文分词插件比较不错,简单的学习了一下,它包涵一些专有名称.人名.地名.数字年代等 ...

  4. mysql against 中文_「against的用法」Mysql全文搜索之MATCH...AGAINST的用法介绍 - seo实验室...

    against的用法 前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar ...

  5. mysql全文搜索数字against_Mysql全文搜索match…against的用法

    前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...

  6. Mysql全文搜索之MATCH...AGAINST的用法介绍

    前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...

  7. 【转】 Mysql全文搜索match...against的用法

    原文链接 http://blog.csdn.net/manbujingxin/article/details/6656992 前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索. 假定 ...

  8. mysql fulltext match_使用Mysql全文搜索Full-Text(fulltext和match...against)_MySQL

    bitsCN.com 作者:aolinks 一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行, 但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候. ---- ...

  9. mysql fulltext match_使用Mysql全文搜索Full-Text (fulltext和 match...against)

    作者:aolinks 一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行, 但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候. --------------- ...

最新文章

  1. MySQL检查冗余索引代码
  2. 4G EPS 中建立 UE 与 eNB 之间的 RRC 连接
  3. NULL 值处理遇到的错误问题.
  4. 1/7 SELECT语句:基础检索
  5. linux 中的时间戳功能,Linux中时间戳取证研究
  6. Factstone Benchmark
  7. PHP获取指定月的前N个月数据
  8. atitit.身份认证解决方案attilax总结
  9. 在线URL解码还原工具
  10. Unity 3D网页游戏与flash网页游戏的较量
  11. npoi Excel图表制作
  12. setTimeout运行机制
  13. error2203matlab,小编详解Win10安装MATLAB软件提示Internal error 2203的解决方法
  14. 3个字节转换为另外3个字节的简单加密算法
  15. 前端——动态生成表格
  16. English trip 自习内容 句子结构和成分
  17. 这个世界有病,我们都有病
  18. 解决MySQL远程过程调用失败
  19. 消防人员实操训练模拟培训虚拟仿真实训系统软件
  20. 机械臂正向运动学原理通俗解释

热门文章

  1. 图片无法删除要计算机管理员,存在桌面的图片删不掉,怎么处理?提示是需要管理员权限。...
  2. flask mysql分页,Flask分页的实现方法
  3. mysql 导出 没有函数_没有MYSQL FILE函数的CSV导出
  4. python控件随窗口变化而适配_Tkinter窗口/控件比例调整
  5. Python熊猫– GroupBy
  6. 五、规则组织的衍生组织——纬山形组织数学模型的建立
  7. Java——集合(输入5个学生的信息按总分高低排序)
  8. cobalt strick 4.0 系列教程(6)Payload Artifact 和反病毒规避
  9. HDU ACM Steps攻略 ACM Steps的全部内容
  10. C++学习笔记(二)