MySQL全文搜索不工作,即使条目存在且ft_min_word_len
设置为1,可能是由于以下几个原因导致的:
MySQL全文搜索是一种强大的文本搜索功能,它允许在数据库中执行复杂的文本查询。全文索引是一种特殊类型的索引,用于加速全文搜索查询。
ft_min_word_len
设置未生效ft_min_word_len=1
,也需要重启MySQL服务才能生效。my.cnf
或my.ini
):my.cnf
或my.ini
):ngram
分词器。OPTIMIZE TABLE
命令来重新构建索引:OPTIMIZE TABLE
命令来重新构建索引:全文搜索广泛应用于需要高效文本检索的场景,如博客平台、电子商务网站、新闻网站等。
以下是一个完整的示例,展示了如何创建表、插入数据、设置全文索引并进行搜索:
-- 创建表
CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
content TEXT,
FULLTEXT(ft_index_name) WITH PARSER ngram
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 插入数据
INSERT INTO articles (title, content) VALUES
('Sample Article', 'This is a sample article with some text.'),
('Another Article', 'Another example of an article with more text.');
-- 进行全文搜索
SELECT * FROM articles WHERE MATCH(content) AGAINST('sample' IN NATURAL LANGUAGE MODE);
通过以上步骤,应该能够解决MySQL全文搜索不工作的问题。如果问题仍然存在,建议检查MySQL的错误日志以获取更多详细信息。
领取专属 10元无门槛券
手把手带您无忧上云