当前位置: 首页 > news >正文

汕头专业的免费建站网络营销效果评估

汕头专业的免费建站,网络营销效果评估,wordpress首页评论,深圳市龙岗区光明区引言 在MySQL 5.7.6之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库。 从MySQL 5.7.6开始,MySQL内置了ngram全文解析器,用来支持中文、日文…

引言

在MySQL 5.7.6之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库。
从MySQL 5.7.6开始,MySQL内置了ngram全文解析器,用来支持中文、日文、韩文分词。

一般的数据库搜索都是用的SQL的like语句,like语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。一般数据超过10万或者在线人数过多,like查询都会导致数据库崩溃。这也就是为什么很多程序都只提供标题搜索的原因了,因为如果搜索内容,那就更慢了,几万数据就跑不动了。

Mysql 全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。

一、全文解析器ngram

ngram就是一段文字里面连续的n个字的序列。ngram全文解析器能够对文本进行分词,每个单词是连续的n个字的序列。
MySQL 中使用全局变量 ngram_token_size 来配置 ngram 中 n 的大小,它的取值范围是1到10,默认值是 2。通常ngram_token_size设置为要查询的单词的最小字数。如果需要搜索单字,就要把ngram_token_size设置为 1。在默认值是 2 的情况下,搜索单字是得不到任何结果的。因为中文单词最少是两个汉字,推荐使用默认值 2。

  • 查看Mysql默认的ngram_token_size大小:
show variables like 'ngram_token_size';
  • 修改ngram_token_size 变量的两种设置方式:
  1. 启动mysqld命令时指定:
mysqld --ngram_token_size=2
  1. 修改mysql配置文件:
[mysqld] 
ngram_token_size=2

注意:修改mysql的配置文件中的ngram_token_size大小,需要重启数据库,且如果之前建有全文索引需要删除重建,因为更改 ngram_token_size 会影响索引的构建方式,从而影响查询结果的准确性和性能。

二、全文索引

  • 建表时创建全文索引:
create table sys_basics_word
(id                   bigint(20) not null comment '主键',chinese              varchar(255) comment '中文',thesaurus            varchar(255) comment '同义词',chinese_meaning      varchar(255) comment '中文含义',english_prototype    varchar(255) comment '英文原型',abbr                 varchar(255) comment '缩写',reference            varchar(255) comment '引用',chinese_and_thesaurus char(10) comment '中文和同义词',create_by            varchar(100) comment '创建者',create_date          datetime comment '创建时间',update_by            varchar(100) comment '更新者',update_date          datetime comment '更新时间',del_flag             char(1) default '0' comment '删除标记',FULLTEXT KEY `chinese_and_thesaurus` (`chinese_and_thesaurus`) WITH PARSER `ngram`,primary key (id)
);
  • 通过 alter table 方式:
ALTER TABLE sys_basics_word ADD FULLTEXT INDEX chinese_and_thesaurus(chinese_and_thesaurus) WITH PARSER ngram;
  • 通过 create index 方式:
CREATE FULLTEXT INDEX chinese_and_thesaurusON sys_basics_word (chinese_and_thesaurus) WITH PARSER ngram;

三、检索模式

  • 自然语言检索(IN NATURAL LANGUAGE MODE)
    自然语言模式是 MySQL 默认的全文检索模式。自然语言模式不能使用操作符,不能指定关键词必须出现或者必须不能出现等复杂查询。

  • 布尔检索(IN BOOLEAN MODE)
    剔除一半匹配行以上都有的词,例如,每行都有this这个词的话,那用this去查时,会找不到任何结果,这在记录条数特别多时很有用,原因是数据库认为把所有行都找出来是没有意义的,这时,this几乎被当作是stopword(中断词);布尔检索模式可以使用操作符,可以支持指定关键词必须出现或者必须不能出现或者关键词的权重高还是低等复杂查询。

全文索引比 like + % 快 N 倍,但是可能存在精度问题
如果需要全文索引的是大量数据,建议先添加数据,再创建索引
MATCH()函数使用的字段名,必须要与创建全文索引时指定的字段名一致,且只能是同一个表的字段不能跨表。

参考文章:
https://www.cnblogs.com/yuyanc/p/18134637
https://blog.csdn.net/weixin_44792849/article/details/123572516

http://www.yayakq.cn/news/628054/

相关文章:

  • 深圳网站制作比较好公司上海室内设计工作室排名
  • 网站 建设文档怎样做违法网站
  • 外网vp(永久免费)加速器下载优质的seo快速排名优化
  • 成品软件网站推荐网站开发的相关语言有哪些
  • 帝国cms更改网站ico郴州seo外包
  • 福州网站建设公司哪个好什么是互联网推广
  • 公司网站怎么建设网站后台 栏目管理
  • 广州营销网站建设设计网站搜索排名优化价格
  • 北京专业做网站推广wordpress手机编辑器插件
  • 学徒制下的课程网站建设互联网排行榜
  • 啤酒网站建设制造网站建设
  • 桂林象鼻山要门票吗dede网站优化
  • 怎样申请网站域名网站收录突然全部没有了
  • 徐州网络科技有限公司seo指的是什么意思
  • 罗山网站建设甘肃省住房和城乡建设局网站
  • 猎头公司人才招聘重庆网站seo方法
  • 帮客户做网站平台犯法吗北京建站者公司
  • 什么大的网站是帝国cms做的九四玩手游代理平台
  • 高校门户网站建设方案合肥中小型企业网站建设方案模板
  • 网站建设对电子商务的意义网站建设服务好的商家
  • 网站建设与管理专业自我评价装潢设计师培训
  • asp一个空间建多个网站系统在哪里创建网站平台
  • 石家庄房和城乡建设部网站电子政务门户网站建设
  • 邹城市住房和建设局网站购买了网站如何使用
  • p2p网站开发公司哪个学校设有网站开发专业
  • 建设部网站不支持360文本网站代码空两格怎么做
  • 设计网站的结构时网站生成
  • 网站建设规划过程和下载安装微信
  • 网站群发软件海淀教育人才网站
  • 快飞建站做私人小网站赚钱吗