不管是前端还是后端,都要看的Elasticsearch快速入门

一.什么是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(后续介绍)操作:

  1. 索引的新建
  1. Setting和Mapping的解释

Setting:es通过settings设置索引的基础参数,包括分词器、分片等。

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": {
        "tsconvert": {
          "convert_type": "t2s"
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值