使用MySQL进行全文索引
来源:互联网 发布:百度统计地域分布数据 编辑:程序博客网 时间:2024/05/18 21:43
使用MYSQL进行全文索引
1. 背景
需要对数据库中某张表里的若干字段进行全文索引。
2. 分析
可以采用三种方法:
1. mysql全文索引
2. lucene进行索引
3. 将mysql数据库转为mongodb
最后决定使用mysql全文索引,省得编码了。
3. 步骤
基本步骤如下:
1. 需要修改数据库引擎,从innodb转为myiam
2. 建立全文索引
3. 查询使用
3.1 修改数据库引擎
use jyonline;show tables;alter table paper ENGINE=MyISAM;alter table question ENGINE=MyISAM;
参考文献 链接
3.2 建立全文索引
对于英文的索引,MySQL很早就已经支持,然而对于中文的索引,MySQL早版本并不是支持的,因此在很早的版本中一般使用插件mysqlcft,在MySQL5.7版本开始支持中文索引。以下是针对5.7版本的中文索引。
早版本链接
5.7版本链接
编辑my.ini文件
首先从windows服务中寻找my.ini的位置,如下图所示。
然后打开编辑如下:
[mysqld]ngram_token_size=2
修改表,增加全文索引
show create table paper;alter table paper add fulltext index ft_index(name) WITH PARSER ngram;show create table question;alter table question add fulltext index ft_index(html) WITH PARSER ngram;
3.3 查询应用
select name from paper where match(name) against('高中')select html from question where match(html) against('集合');
4. 附录
4.1 查看和删除索引
# 查看并删除索引SHOW CREATE TABLE paper;------------------------------------CREATE TABLE `paper` ( `id` varchar(36) NOT NULL COMMENT 'guid', `html` longtext, `subject` varchar(5) DEFAULT NULL COMMENT '学科:\n1,语文\n2,数学\n3,外语\n4,物理\n5,化学\n6,历史\n7,地理\n8,政治\n9,生物', `grade` varchar(5) DEFAULT NULL COMMENT '包括初一,初二,初三,中考,高一,高二,高三,高考', `name` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_UNIQUE` (`id`), FULLTEXT KEY `subject` (`subject`,`grade`,`name`)) ENGINE=MyISAM DEFAULT CHARSET=utf8-------------------------------------------alter table paper drop index subject;SHOW CREATE TABLE question;-------------------------------------------CREATE TABLE `question` ( `id` varchar(36) NOT NULL, `html` text, `answer` text, `paper_id` varchar(36) NOT NULL, `answer_url` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `html` (`html`)) ENGINE=MyISAM DEFAULT CHARSET=utf8--------------------------------------------alter table question drop index html;
4.2 全文索引的搜索方式
参考链接
主要包括三种:自然语言全文搜索、布尔全文搜索和查询扩展全文搜索。
0 0
- 使用MySQL进行全文索引
- 使用MySQL全文索引
- Mysql 使用全文索引
- Mysql表使用全文索引
- mysql中文进行全文索引支持问题
- 在mysql中使用全文索引
- MySQL使用全文索引(fulltext index)
- MySQL使用全文索引(fulltext index)
- 关于Mysql 全文索引的使用
- MySQL普通索引、唯一索引、主索引、外键索引、复合索引、全文索引的使用
- MySQL全文索引 Fulltext
- mysql中文全文索引
- mysql全文索引中文搜索
- mysql中文全文索引
- 研究 mysql 全文索引
- Mysql全文索引
- mysql开启全文索引
- mysql中文全文索引
- 你不懂JS:作用域与闭包 第五章:作用域闭包
- [DB][mybatis]MyBatis mapper文件中的变量引用方式#{}与${}的差别
- [LeetCode]451. Sort Characters By Frequency
- 编写有效用例【笔记整理】
- OWL Web Ontology Language Reference (OWL网页本体语言参考) -简洁版
- 使用MySQL进行全文索引
- 关于BMP文件格式的详解
- 使用ModelDriven接收参数
- mysql 纵表转横表
- 【寒江雪】四大纹理过滤方式和四大寻址模式
- 唯一识别码UUID
- 模具设计知识点
- 扩大C盘
- 高性能Nginx服务器优化实战