mysql 4.x以上提供了全文检索支持 MATCH ……AGAINST 模式(不区分大小写)建立全文索引的表的存储引擎类型必须为MyISAM问题是match against对中文模糊搜索支持不是太好新建一个utf8 MyISAM类型的表并建立一个全文索引 :其中FULLTEXT(title, body) 给title和body这两列建立全文索引,之后检索的时候注意必须同时指定这两列。给这个表添加点测试数据全文检索测试
注意 MATCH (title,body) 里面的值必须是前面建立全文索引的两个字段不能少。mysql 默认支持全文检索的字符长度是4,可以用SHOW VARIABLES LIKE ‘ft_min_word_len’ 来查看指定的字符长度,也可以在mysql配置文件my.ini 更改最小字符长度,方法是在my.ini 增加一行 比如:ft_min_word_len = 2,改完后重启mysql即可。另外,MySQL还会计算一个词的权值,以决定是否出现在结果集中,具体如下:mysql在集和查询中的对每个合适的词都会先计算它们的权重,一个出现在多个文档中的词将有较低的权重(可能甚至有一个零权重),因为在这个特定的集中,它有较低的语义值。否则,如果词是较少的,它将得到一个较高的权重,mysql默认的阀值是50%,上面‘you’在每个文档都出现,因此是100%,只有低于50%的才会出现在结果集中。全文检索语法表示AND,即必须包含。- 表示NOT,即不包含。
apple和开发云主机域名banana之间是空格,空格表示OR,即至少包含apple、banana中的一个。必须包含apple,但是如果同时也包含banana则会获得更高的权重。~ 是我们熟悉的异或运算符。返回的记录必须包含apple,但是如果同时也包含banana会降低权重。 但是它没有 +apple -banana 严格,因为后者如果包含banana压根就不返回。返回同时包含apple和banana或者同时包含apple和orange的记录。但是同时包含apple和banana的记录的权重高于同时包含apple和orange的记录。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开发云。
标题索引变量分类变量设置变量分类变量主要分为全局变量和会话变量,全局变量是当客户端程序与服务器端建立会话后自动集成部分全局变量的值,而会话变量是只对当前变量有效,另外全局变量有些支持在线修改,有些则是只读变量,只读变量只允许在配置文件中加载值。变量设置 1.全…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。