MySQL全文索引替代like模糊查询

本文介绍了search_modifier在IT技术中的不同模式,如布尔模式支持复杂逻辑,自然语言模式注重相关性排序,以及如何通过queryexpansion扩大搜索范围。以SQL示例展示了如何在数据库查询中运用这些模式来精确匹配商品描述。
摘要由CSDN通过智能技术生成

search_modifier可以是以下几种模式之一,主要关注前2种:

● IN BOOLEAN MODE:精确匹配,在布尔模式下进行匹配。布尔模式允许使用布尔运算符(AND、OR、NOT)和扩展操作符(+、-、*)。使用布尔模式可以进行更复杂的搜索逻辑和条件匹配。

● IN NATURAL LANGUAGE MODE:默认模式,在自然语言模式下进行匹配。自然语言模式是一种基于自然语言的搜索模式,它会根据单词的重要性和相关性进行匹配,并按照相关性进行结果排序。

● IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION:在自然语言模式下进行匹配,并使用查询扩展。查询扩展可以扩大搜索结果的范围,包括与原始查询相关的其他词汇。

● WITH QUERY EXPANSION:进行查询扩展,扩大搜索结果的范围,但不指定具体的匹配模式。
语法规则说明
SHOW VARIABLES LIKE ‘ft%’;

ft_boolean_syntax:全文索引分词关键字,不能更改,为内置变量
+ 必须包含该词
- 必须不包含该词
> 提高该词的相关性,查询的结果靠前
< 降低该词的相关性,查询的结果靠后
(*)星号 通配符,只能接在词后面
ft_max_word_len:最大分词长度,一般情况下不需要更改
ft_min_word_len:最小分词长度,一般修改为1
ft_query_expansion_limit:不明觉厉的一个参数,基本上不需要设置
ft_stopword_file:全文停止词

使用例子

  1. 等价于where item_desc like ‘%汤臣倍健%’
    SELECT
    *
    FROM
    plan_goods
    WHERE
    MATCH(item_desc) AGAINST(‘汤臣倍健’ IN BOOLEAN MODE);
  2. 包含汤臣倍健并且不包含牛初乳
    SELECT
    *
    FROM
    plan_goods
    WHERE
    MATCH(item_desc) AGAINST(‘+汤臣倍健 -牛初乳’ IN BOOLEAN MODE);
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值