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)
  • >提高该字的相关性,查询的结果会排在比较靠前的位置。
  • <降低相关性,查询的结果会排在比较靠后的位置。
posted @   Cloud↓Sky  阅读(160)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示