美文网首页
简单的记一下mysql-full-text

简单的记一下mysql-full-text

作者: 赫鲁晓夫的玉米棒子 | 来源:发表于2021-10-11 17:35 被阅读0次

1、首先要设置 ngram_token_size

  • 一种是在启动mysql的时候 mysqId --ngram_token_size=2

  • 另一种是在配置文件里修改,通常是vi /etc/my.cnf。然后添加一句ngram_token_size=2,然后重启一下mysql systemctl restart mysqld.service(我这环境是centos 7 ,mysql 5.7)。

2、创建全文索引。

  • 创建表的同时创建全文索引
CREATE TABLE posts (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    title VARCHAR (200),
    content TEXT,
    FULLTEXT (title, content) WITH PARSER ngram
) ENGINE = INNODB;

  • 直接通过create index
CREATE FULLTEXT INDEX ft_index ON posts (title,content) WITH PARSER ngram;

3、搜索

  • 自然语言模式
    默认就是自然语言模式:
SELECT * MATCH (title,content) AGAINST ('你好') FROM posts;

也可以指定:

SELECT * MATCH (title,content) AGAINST ('你好 打工人' IN NATURAL LANGUAGE MODE) FROM posts;
  • BOOLEAN 模式
    BOOLEAN模式可以执行高级查询:
SELECT * MATCH (title,content) AGAINST ('+你好 -打工人' IN BOOLEAN MODE) FROM posts;

必须包含“你好”,且不能包含“打工人”。

相关文章

网友评论

      本文标题:简单的记一下mysql-full-text

      本文链接:https://www.haomeiwen.com/subject/zfaloltx.html