MySQL-使用中文分词的全文索引

1.基本使用


向添加title和text字段的全文索引
ALTER TABLE content ADD FULLTEXT INDEX text_index(title,`text`) WITH PARSER ngram;


1.按自然语言搜索模式查询 (默认)

SELECT * FROM content WHERE MATCH (title,TEXT) AGAINST ('如何' IN NATURAL LANGUAGE MODE)

2.按布尔全文搜索模式查询 
(1)匹配既有管理又有数据库的记录 

SELECT * FROM content WHERE MATCH (title,TEXT) AGAINST ('+数据库 +管理' IN BOOLEAN MODE)
(2)匹配有数据库,但是没有管理的记录 

SELECT * FROM content WHERE MATCH (title,TEXT) AGAINST ('+数据库 -管理' IN BOOLEAN MODE)
(3)匹配MySQL,但是把数据库的相关性降低

SELECT * FROM content WHERE MATCH (title,TEXT) AGAINST ('>数据库 +MySQL' IN BOOLEAN MODE)

3.查询扩展模式,比如要搜索数据库,那么MySQL,oracle,DB2也都将会被搜索到,

SELECT * FROM content WHERE MATCH (title,TEXT) AGAINST ('数据库' WITH QUERY EXPANSION);

2.分页

SELECT * FROM content tc WHERE MATCH (title,TEXT) AGAINST ('美国' IN NATURAL LANGUAGE MODE) ORDER BY tc.heat_value DESC  LIMIT 2

3.结合spring jpa使用全文检索

@Query(value = "SELECT * FROM accounts WHERE (COALESCE(first_name,'') LIKE %:firstName% AND COALESCE(last_name,'') LIKE %:lastName%)", nativeQuery = true)
public List<Account> searchByFirstnameAndLastname(@Param("firstName")String firstName,@Param("lastName")String lastName);

参考链接
如何使用jpa进行mysql全文检索

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值