1.数据同步
名词解释
在mysql、es数据同步的过程中需了解两个概念
全量:第一次当建立完es索引之后将mysql数据一次性打包到es中
增量:当mysql产生新的数据(新数据add、旧数据update或者delete)需es做相应的操作
2.实现方式
编写脚本
针对全量的场景,编写脚本:查询数据、数据处理、插入到es中
简单步骤说明如下:
名词解释
在mysql、es数据同步的过程中需了解两个概念
全量:第一次当建立完es索引之后将mysql数据一次性打包到es中
增量:当mysql产生新的数据(新数据add、旧数据update或者delete)需es做相应的操作
针对全量的场景,编写脚本:查询数据、数据处理、插入到es中
简单步骤说明如下:
分词器分类
standard:es默认的分词器,将词汇单元转为小写形式,并去除一些停用词和标点符号。(支持中文、单字切分)
simple:通过非字母字符分割文本信息,将文本单元统一为小写形式,去除数字类型字符。
whitespace:仅仅去除空格,没有任何lowcase化,不支持中文,对生成的词汇单元没有任何标准化处理
language:不支持中文
通过个人博客全文检索的实际场景,了解现有mysql技术的局限性,并初步认识ES的检索性能
项目基于springboot构建个人博客demo
表结构设计
CREATE DATABASE blog;
USE blog;
CREATE TABLE `t_blog` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`title` varchar(60) DEFAULT NULL COMMENT '博客标题',
`author` varchar(60) DEFAULT NULL COMMENT '博客作者',
`content` mediumtext COMMENT '博客内容',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4
# 模拟
INSERT INTO `blog`.`t_blog`(`id`, `title`, `author`, `content`, `create_time`, `update_time`) VALUES (1, 'Springboot 为什么这', 'bywind', '没错 Springboot ', '2019-12-08 01:44:29', '2019-12-08 01:44:34');
INSERT INTO `blog`.`t_blog`(`id`, `title`, `author`, `content`, `create_time`, `update_time`) VALUES (3, 'Springboot 中 Redis', 'bywind', 'Spring Boot', '2019-12-08 01:44:29', '2019-12-08 01:44:29');
INSERT INTO `blog`.`t_blog`(`id`, `title`, `author`, `content`, `create_time`, `update_time`) VALUES (4, 'Springboot 中如何优化', 'bywind', NULL, '2019-12-08 01:44:29', '2019-12-08 01:44:29');
INSERT INTO `blog`.`t_blog`(`id`, `title`, `author`, `content`, `create_time`, `update_time`) VALUES (5, 'Springboot 消息队列', 'bywind', NULL, '2019-12-08 01:44:29', '2019-12-08 01:44:29');
INSERT INTO `blog`.`t_blog`(`id`, `title`, `author`, `content`, `create_time`, `update_time`) VALUES (6, 'Docker Compose + Springboot', 'bywind', NULL, '2019-12-08 01:44:29', '2019-12-08 01:44:29');
内容说明
1.ElasticSearch的概念和适用场景
2.ElasticSearch VS Mysql
3.ElasticSearch的安装与部署
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
关键字:分布式(Node & Cluster)、全文检索、实时快速、Restful
项目说明
视频地址:https://www.imooc.com/learn/1161
项目源码:https://github.com/holic-x/springboot-es
项目笔记:https://www.yuque.com/u21572591/exqg2x/pco32x
学习内容
结合实际需求分析,打造个人博客检索系统。内容涵盖 ES安装、ES基本概念和数据类型、Mysql 到 ES 数据同步、SpringBoot 操作 ES。可初步认识ES,理解ES的一些适用场景,以及如何使用springboot来同ES进行交互