mysql实现全文检索(mysql自带)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 18:48   11   0

最近在做项目过程中,需要检索出附件中内容,通过一些查询实现了全文检索功能

1.需要修改mysql配置文件

mysql的配置文件需要修改两处:

(1).修改中文检索分词插件ngram(分词器在使用中文检索分词插件ngram之前,先得在MySQL配置文件里面设置他的分词大小(默认是2))

ngram_token_size=2

(2).修改全文检索的最小许可字符

ft_min_word_len=2

(3)全局变量的两种设置方法:
1、启动mysqld命令时
mysqld --ngram_token_size=2

mysqld --ft_min_word_len=2
2、修改MySQL配置文件
[mysqld]
ngram_token_size=2

ft_min_word_len = 2

注:mysql查看配置大小:

show variables like 'ft_min_word_len';
show variables like 'ngram_token_size';

2.添加索引(file市表名,ft_index市索引名称

ALTER TABLE file ADD FULLTEXT INDEX ft_index (file_name,file_content) WITH PARSER ngram;

另删除索引语句为:DROP INDEX ft_index ON file

3.使用方法

sql测试语句:SELECT * FROM file WHERE MATCH (file_name,file_content) AGAINST ('>一个 两个*' IN BOOLEAN MODE);

注:在使用过程中,前台传递参数“name”为多个字,sql使用时会自动分词,直接使用即可。比如:

SELECT * FROM file
WHERE MATCH (file_name, file_content)
AGAINST (CONCAT('>',#{name,jdbcType=VARCHAR},'*') IN BOOLEAN MODE)

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP