2020-09-30 12:17:45
MySQL通过FULLTEXT索引和MATCH...AGAINST函数构建的高效全文检索机制,能够显著提升文本搜索性能,尤其在处理大规模非结构化数据时优势明显。以下是核心应用方法与注意事项:
ft_min_word_len:默认4字符,需调整以支持短词搜索(如中文单字)。
ft_max_word_len:默认无限制,可根据业务需求设置。
修改后需重建索引生效。
MySQL内置停用词列表(如“的”、“是”),可通过ft_stopword_file指定自定义文件。
示例:医学文献中“患者”、“诊断”可能需设为停用词。
定期重建索引(通过ALTER TABLE ... ADD FULLTEXT INDEX)以应对高频写入/删除操作。
自动计算相关性分数并按降序返回结果。
支持停用词过滤和基础词干化(如搜索“running”可匹配“run”)。
+:必须包含(如+Python)。
-:必须排除(如-Django)。
*:通配符(如appl*匹配“apple”、“application”)。
"":精确短语匹配(如"exact phrase")。
~:否定且优先级低。
首次执行自然语言查询,根据高相关性文档提取新关键词二次查询。
可能引入不相关结果(“噪音”)。
过滤停用词(如“的”、“是”)。
支持基础词干化(如“running”→“run”)。
日常搜索用自然语言模式。
精确控制用布尔模式。
探索性搜索谨慎使用查询扩展模式。

通过合理配置全文索引和MATCH...AGAINST函数,MySQL可实现高效、智能的文本搜索,尤其适合内容管理系统、电商搜索等场景。