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

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

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)

你可能感兴趣的:(mysql,Java)