一.什么是Elasticsearch
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎,Elasticsearch和Mysql,Redis,MongoDb,Clickhouse等一样,都可以认为它是一种数据库
二.为什么要用Elasticsearch
设想一个场景:
user表有6千多万条数据,我想查询nick中包含”大帅哥“的数据:
Select nick from user where nick like '%大帅哥%'
比如,我把大帅哥写成了帅哥,写成了大帅锅,写成了dashuaige,甚至写成了dsg,大帥哥等,此时的 Mysql是无法处理
的,而Elasticsearch借助分词器(后续介绍),可以简单快速查询检索。
三.Mysql和Elasticsearch概念对比
1、 MySQL 的数据库(DataBase)相当于 Index(索引),数据的逻辑集合,ES 的工作主要也是创建索引,查询索引。
2、 一个数据库里会有多个表(Table),同样的一个 Index 也会有多个 type。
3、 一个表会有多行(Row),同样的一个 Type 也会有多个 Document。
4、 Schema 指定表名,表字段,是否建立索引等,同样的 Mapping 也指定了 Type 字段的处理规则,即索引如何建立,是否分词,分词规则等。
5、MySQL 中一个row对应多个Column,同样的一个Document会有多个Fields。
6、 在 MySQL 中索引是需要手动创建的,而在 ES 一切字段皆可被索引,只要在 Mapping 在指定即可。

总结:
Mysql关系型数据库,适用于结构化数据(数据与数据之间存在强关联)的数据存储和查询和数据与数据之间的关系处理,大量数据检索需要全表查询,性能差
Elasticsearch非关系型数据库,适用于数据与数据之间相对独立的大量数据的检索查询,数据修改效率低于Mysql,不善于处理数据之间的关系
四.实际操作
通过Docker,使用es和kibana镜像,开启es服务和kibana(后续介绍)。


我们使用的版本号是:5.6.12
使用Kibana Dev Tool(后续介绍)操作:文章来源:https://www.toymoban.com/news/detail-482079.html
- 索引的新建

- Setting和Mapping的解释
Setting
:es通过settings设置索引的基础参数,包括分词器、分片等。文章来源地址https://www.toymoban.com/news/detail-482079.html
PUT /baobaokanjia/
{
"settings": {
"number_of_shards": 1,
"analysis": {
"analyzer": {
"ik_max_word_t2s": {
"char_filter": [
"tsconvert"
],
"tokenizer": "standard"
},
"ik_smart_t2s": {
"char_filter": [
"tsconvert"
],
"tokenizer": "standard"
},
"pinyin_analyzer": {
"tokenizer": "my_pinyin"
}
},
"char_filter": {
到了这里,关于不管是前端还是后端,都要看的Elasticsearch快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!