正文开始 [md] linux服务器为my.cnf,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后重启Mysql。
相关性 如果一个查询,匹配到多条记录,是怎么返回呢?根据相关性 -- 查询相关性 SELECT title, MATCH(title) AGAINST('like') AS relevance FROM test 发现只有前面2条记录的相关性>0,推断查询结果就是取相关性>0的记录,其实也正是如此。那相关性是怎么计算呢 (1) word(查询关键字)是否在文档中出现 (2) word在文档中出现的次数 (3) word在索引列中的数量 (4) 多少个文档包含该word 所以Some like it hot, Some like it cold,出现了2次like,相关性高 Some like it in who pot出现了1次,相关性低 而其它记录没有相关性 检索模式 Natural Language 上面的例子我们是用的默认的检索模式,Natural Language模式!表示查询带有指定word的文档。下面2种方式是等价的 SELECT * FROM test WHERE MATCH(title) AGAINST('what' in NATURAL LANGUAGE MODE); SELECT * FROM test WHERE MATCH(title) AGAINST('what'); Boolean 当使用这种模式时,表示字符串前后的字符有特殊含义。比如要查找有Pease单词的记录 SELECT * FROM test WHERE MATCH(title) AGAINST('+Pease' in BOOLEAN MODE); 假设,我们需要查找有Pease,但是没有hot的记录呢?用+,-符号,分别表示一定存在,或者一定不存在 SELECT * FROM test WHERE MATCH(title) AGAINST('+Pease -hot' in BOOLEAN MODE); 正文结束 |
Mysql Innodb 引擎优化 参数 | ubuntu安装 mysql_pdo |