MySQL全文搜索
创建全文索引(FullText index)
- 创建表的同时创建全文索引
- FULLTEXT (name) WITH PARSER ngram
- 通过 alter table 的方式来添加
alter table `das`.`staff_base` add fulltext index staff_base_name(`name`) with parser ngram;
使用全文索引的格式 MATCH (columnName
) AGAINST ('string')
SELECT * FROM mo_cms_copy1 WHERE MATCH(`txt`) AGAINST('数据库' IN BOOLEAN MODE)
AGAINST 可选参数
- 默认不传
- 自然语言模式下检索:IN NATURALLANGUAGE MODE
- 布尔模式下搜索,这个就相对于自然模式搜索来的复杂些:IN BOOLEAN MODE
- 查询扩展模式,比如要搜索数据库,那么MySQL,oracle,DB2也都将会被搜索到
ft_boolean_syntax (+ ->
-
+
用在词的前面,表示一定要包含该词,并且必须在开始位置。
eg: +Apple 匹配:"Apple123" , "tommy, Apple" -
-
不包含该词,所以不能只用「-yoursql」这样是查不到任何row的,必须搭配其他语法使用。
eg: MATCH (name) AGAINST (‘-lime +oracle‘) -
匹配到: 所有不包含lime,但包含oracle的记录
-
空(也就是默认情况),表示可选的,包含该词的顺序较高。
排序
SELECT * FROM mo_cms_copy1 WHERE MATCH(`txt`) AGAINST('数据库 <Redis' IN BOOLEAN MODE)
>
提高该字的相关性,查询的结果会排在比较靠前的位置。<
降低相关性,查询的结果会排在比较靠后的位置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗