ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL全文检索

2021-05-18 17:36:47  阅读:234  来源: 互联网

标签:title AGAINST 全文检索 biz MODE MySQL WHERE SELECT


#添加全文索引

ALTER TABLE `biz_document` ADD FULLTEXT f_content (`content`) with parser ngram;

ALTER TABLE `biz_document` ADD FULLTEXT f_title (`title`) with parser ngram;

#搜索

SELECT * FROM biz_document WHERE MATCH (title) AGAINST ('最多跑一次' IN NATURAL LANGUAGE MODE); #自然语言模式

SELECT * FROM biz_document WHERE MATCH (title) AGAINST ('+最多跑一次 +管理' IN BOOLEAN MODE); #布尔模式

SELECT * FROM biz_document WHERE MATCH (title) AGAINST ('+最多跑一次 -管理' IN BOOLEAN MODE); #布尔模式

SELECT * FROM biz_document WHERE MATCH (title) AGAINST ('>最多跑一次 +MySQL' IN BOOLEAN MODE); #布尔模式


#自然语言模式: 文本的查询被转换为n-gram分词查询的并集。例如,where条件('信息系统')转换为('信息 息系 系统')
#布尔模式:文本查询被转化为n-gram分词的短语查询。 例如,where条件('信息系统')转换为("'信息 息系 系统'")。

#通配符查询: 如果前缀的长度比ngram_token_size小,那么查询结果将返回在全文索引中所有以这个词作为前缀的n-gram的词。
-- 如果前缀的长度大于等于ngam_token_size,那么这个查询则转换为一个短语(phrase search),通配符则被忽略, 改用短语查询。

#INSERT INTO biz_acticles (title) VALUES ('信息系统'), ('信息 系统'), ('信息的系统'), ('信息'), ('系统'), ('息系');

SELECT * FROM biz_acticles WHERE MATCH (title) AGAINST ('信息系统' IN NATURAL LANGUAGE MODE); #自然语言模式

SELECT * FROM biz_acticles WHERE MATCH (title) AGAINST ('信息系统' IN BOOLEAN MODE); #布尔模式

SELECT * FROM biz_acticles WHERE MATCH (title) AGAINST ('信息*' IN BOOLEAN MODE); #通配符查询

SELECT * FROM biz_acticles WHERE MATCH (title) AGAINST ('"信息 系统"' IN BOOLEAN MODE); #短语查询

show VARIABLES LIKE '%token%'; #ngram_token_size

 

标签:title,AGAINST,全文检索,biz,MODE,MySQL,WHERE,SELECT
来源: https://www.cnblogs.com/smileblogs/p/14781835.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有