当前位置: 代码迷 >> 综合 >> PHP mysql fulltext 全文索引
  详细解决方案

PHP mysql fulltext 全文索引

热度:35   发布时间:2023-12-05 18:49:27.0

注意事项

  1. 如果可能,请尽量先创建表并插入所有数据后再创建全文索引,而不要在创建表时就直接创建全文索引,因为前者比后者的全文索引效率要高。
  2. show variables like 'ft%';查看mysql配置ft_min_word_len检索最小单位长度,默认为4,更改为1,然后重启mysql,必须重建所有fulltext index(这个很重要,不重建可能会不生效)

sql写法

直接检索:

where MATCH (title,content) AGAINST ('关键字' in boolean mode)

关键字搜索语法规则:

+ 一定要有(不含有该关键词的数据条均被忽略)。
- 不可以有(排除指定关键词,含有该关键词的均被忽略)> 提高该条匹配数据的权重值。
< 降低该条匹配数据的权重值。
~ 将其相关性由正转负,表示拥有该字会降低相关性(但不像 - 将之排除),只是排在较后面权重值降低。
* 万用字,不像其他语法放在前面,这个要接在字符串后面。
" " 用双引号将一段句子包起来表示要完全相符,不可拆字。 

使用排序:

select a.*,(MATCH (a.title) AGAINST ('关键字' in boolean mode)) as fulltext_words from table_name a where MATCH (a.title) AGAINST ('关键字' in boolean mode) order by fulltext_words desc
  相关解决方案