<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[全文索引]MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[数据库技术]]></category>
<pubDate>Sun, 08 Jun 2014 01:16:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：搞个个人博客的全文搜索得用like啥的，现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了，刚查了下目前版本号都到MySQL Community Server 5.6.19 了，所以，一些小的应用可以用它做全文搜索了，像sphinx和Lucene这样偏重的、需要配置或开发的，节省了成本。<br/><br/>这儿有一个原创的Mysql全文搜索的文章， mysql的全文搜索功能：<br/>http://blog.csdn.net/bravekingzhang/article/details/6727541<br/><br/>基于mysql全文索引的深入理解：<br/>http://www.jb51.net/article/37738.htm<br/><br/>为什么要设置 Mysql 的 ft_min_word_len=1：<br/>http://blog.csdn.net/shilian_h/article/details/6215537<br/><br/><br/>MySQL 全文搜索支持简述：<br/>从MySQL 4.0以上 myisam引擎就支持了full text search 全文搜索，在一般的小网站或者blog上可以使用这个特性支持搜索。<br/>那么怎么使用了，简单看看：<br/>1.创建一个表，指定支持fulltext的列<br/>&nbsp;&nbsp;CREATE TABLE articles (<br/>&nbsp;&nbsp;&nbsp;&nbsp;id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,<br/>&nbsp;&nbsp;&nbsp;&nbsp;title VARCHAR(200),<br/>&nbsp;&nbsp;&nbsp;&nbsp;body TEXT,<br/>&nbsp;&nbsp;&nbsp;&nbsp;FULLTEXT (title,body)<br/>&nbsp;&nbsp;);<br/>2.插入一些数据作为测试<br/>&nbsp;&nbsp;INSERT INTO articles (title,body) VALUES<br/>&nbsp;&nbsp;&nbsp;&nbsp;(&#039;MySQL Tutorial&#039;,&#039;DBMS stands for DataBase ...&#039;),<br/>&nbsp;&nbsp;&nbsp;&nbsp;(&#039;How To Use MySQL Well&#039;,&#039;After you went through a ...&#039;),<br/>&nbsp;&nbsp;&nbsp;&nbsp;(&#039;Optimizing MySQL&#039;,&#039;In this tutorial we will show ...&#039;),<br/>&nbsp;&nbsp;&nbsp;&nbsp;(&#039;1001 MySQL Tricks&#039;,&#039;1. Never run mysqld as root. 2. ...&#039;),<br/>&nbsp;&nbsp;&nbsp;&nbsp;(&#039;MySQL vs. YourSQL&#039;,&#039;In the following database comparison ...&#039;),<br/>&nbsp;&nbsp;&nbsp;&nbsp;(&#039;MySQL Security&#039;,&#039;When configured properly, MySQL ...&#039;);<br/>3.select查询fulltext的列 <br/>&nbsp;&nbsp;SELECT * FROM articles<br/>&nbsp;&nbsp;&nbsp;&nbsp;WHERE MATCH (title,body) AGAINST (&#039;database&#039;);<br/>查询结果：<br/>&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MySQL vs. YourSQL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In the following database comparison ...&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MySQL Tutorial&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DBMS stands for DataBase ...&nbsp;&nbsp; <br/>全文查询中的boolean语句， + -跟普通的搜索引擎语法一样<br/>&nbsp;&nbsp;SELECT * FROM articles WHERE MATCH (title,body)<br/>&nbsp;&nbsp;&nbsp;&nbsp; AGAINST (&#039;+MySQL -YourSQL&#039; IN BOOLEAN MODE);<br/>innodb不支持fulltext，当然可以使用http://sphinxsearch.com/ sphinx来dump数据库数据支持全文搜索。<br/>原文地址：http://www.javaarch.net/jiagoushi/700.htm<br/><br/>后记，MySQL 5.6.4里才添加了InnoDB引擎的Full-Text索引支持，或用张宴兄弟的基于Sphinx+MySQL的千万级数据全文检索（搜索引擎）架构设计: http://blog.s135.com/post/360/<br/>Q:<br/>我想在查询时使用MATCH(...) AGAINST(...)语法，但是我的数据表引擎是Innodb，当我CREATE FULLTEXT INDEX的时候，返回提示The used table type doesn&#039;t support FULLTEXT indexes。<br/>我想问的是在innodb引擎中是否不能使用FULLTEXT引擎？有什么替代品吗？可以使用MATCH(...) AGAINST(...)语法吗？<br/>A:<br/>MySQL 5.6.4里才添加了InnoDB引擎的Full-Text索引支持。<br/>不能升级MySQL版本的话：<br/>推荐用Lucene（ElasticSearch比较容易部署）或Sphinx这样的第三方解决方案。<br/>innodb 不支持FULLTEXT类型的全文索引，但是innodb可以使用sphinx插件支持全文索引，并且效果更好。<br/>sphinx 是一个开源软件，提供多种语言的API接口，可以优化mysql的各种查询。<br/>如果这个表更新不频繁，查询量不大，又赶时间，可以用触发器、定时任务或者其他类似的DBA技巧创建支持全文索引的镜像表（如MyISAM类型的），代码改动会小一些。<br/> MySQL5.6 InnoDB FULLTEXTIndexes研究测试：<br/>http://blog.csdn.net/zyz511919766/article/details/12780173<br/><br/>mysql 5.6.4支持nosql：<br/>在最新的 mysql-5.6.4-labs-innodb-memcached 中，实现了简单的给予 key/value的nosql功能，其主要原理<br/>就是mysqld除了监听3306端口之外，同时监听11211端口。使mysqld和memcached服务处在同一进程中。通过<br/>数据库、表与字段的映射，将缓存在memcache的数据插入到映射的表中。安装包中提供了三张表：containers<br/>cache_policies和config_options,表containers就提供了映射关系，表cache_policies提供了三种存储方式（<br/>innodb_only数据只插入表，cache_only只缓存数据,caching即缓存数据又插入表）,表config_options中提供<br/>了一个默认分隔符“&#124;”，就是说如果在表containers的values字段中定义了col1,col2...字段，那在设置缓存值时就<br/>可以用val1&#124;val2的形式，这样将会把val1插入到col1,val2插入到col2。<br/><br/>来自：http://blog.csdn.net/sunny5211/article/details/7357893<br/><br/><br/><br/><br/><br/><br/>这个不能算是全文搜索， 只是传统的全表搜索。如果使用mysql的全文检查，在200万数据集上，不可能用那么长的时间的。<br/>使用mysql全文检索的方法如下：<br/>1. 配置mysql参数ft_min_word_len=1<br/>在数据表的文本字段中创建fulltext索引。<br/>2.将原始文本进行分词（处理成按空格分隔的字符串），可使用一些开源的分词模块实现。 再导入到mysql数据表中<br/>3. 使用mysq select * from tb1 where title match&#039;词语&#039; 进行检索。<br/>来自：http://www.oschina.net/question/123890_133459
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [全文索引]MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>