|
最近在做项目过程中,需要检索出附件中内容,通过一些查询实现了全文检索功能
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) |