MySQL 创建全文索引

2020-02-04  本文已影响0人  代码的搬运工

alter table 表名 add fulltext index 索引名(列名, 列名);

全文索引只有在char、varchar、text类型列才能创建,使用的时候需要match、against关键字的配合,

select * from 表名 where match(列名, 列名) against ('查询字符串');

强烈注意:MySQL自带的全文索引只能用于数据库引擎为MyISAM的数据表,如果是其他数据引擎,则全文索引不会生效。此外,MySQL自带的全文索引只能对英文进行全文检索,目前无法对中文进行全文检索。如果需要对包含中文在内的文本数据进行全文检索,我们需要采用Sphinx或Coreseek技术来处理中文。

目前,使用MySQL自带的全文索引时,如果查询字符串的长度过短将无法得到期望的搜索结果。MySQL全文索引所能找到的词默认最小长度为4个字符。另外,如果查询的字符串包含停止词,那么该停止词将会被忽略。

如果可能,请尽量先创建表并插入所有数据后再创建全文索引,而不要在创建表时就直接创建全文索引,因为前者比后者的全文索引效率要高。

上一篇 下一篇

猜你喜欢

热点阅读