- 步骤一:修改表结构以支持全文索引
- 首先,需要确保MySQL版本支持全文索引(一般较新的版本都支持)。对于上述
articles
表,要先将content
字段的数据类型修改为TEXT
或VARCHAR
(VARCHAR
长度需合理设置),并且添加全文索引。
- 如果表还未创建,可以使用如下
CREATE TABLE
语句创建带有全文索引的表:
CREATE TABLE articles (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255),
content TEXT,
FULLTEXT(content)
);
- 如果表已经存在,可以使用
ALTER TABLE
语句添加全文索引:
ALTER TABLE articles ADD FULLTEXT(content);
- 步骤二:使用全文检索进行查询
- 在MySQL中,使用
MATCH AGAINST
语法进行全文检索。假设要搜索包含关键词example
的文章,可以使用如下SQL语句:
SELECT * FROM articles
WHERE MATCH(content) AGAINST('example' IN NATURAL LANGUAGE MODE);
- 如果需要更精确的搜索,例如使用IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION:
SELECT * FROM articles
WHERE MATCH(content) AGAINST('example' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION);
SELECT * FROM articles
WHERE MATCH(content) AGAINST('example' IN 'utf8mb4' NATURAL LANGUAGE MODE);