当前位置:   article > 正文

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

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": {
       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/126545
推荐阅读
  

闽ICP备14008679号