学习总结录 学习总结录
首页
归档
分类
标签
  • Java基础
  • Java集合
  • MySQL
  • Redis
  • JVM
  • 多线程
  • 计算机网络
  • 操作系统
  • Spring
  • Kafka
  • Elasticsearch
  • Python
  • 面试专题
  • 案例实践
  • 工具使用
  • 项目搭建
  • 服务治理
  • ORM框架
  • 分布式组件
  • MiniSpring
  • 设计模式
  • 算法思想
  • 编码规范
友链
关于
GitHub (opens new window)
首页
归档
分类
标签
  • Java基础
  • Java集合
  • MySQL
  • Redis
  • JVM
  • 多线程
  • 计算机网络
  • 操作系统
  • Spring
  • Kafka
  • Elasticsearch
  • Python
  • 面试专题
  • 案例实践
  • 工具使用
  • 项目搭建
  • 服务治理
  • ORM框架
  • 分布式组件
  • MiniSpring
  • 设计模式
  • 算法思想
  • 编码规范
友链
关于
GitHub (opens new window)
  • Java基础

  • Java集合

  • MySQL

  • Redis

  • JVM

  • 多线程

  • 计算机网络

  • Spring

  • Kafka

  • Elasticsearch

    • ElasticSearch基本概念
      • 一、索引
      • 二、文档
      • 三、字段
      • 四、节点
      • 五、分片
      • 六、集群
      • 参考
    • 文档基本操作
    • 倒排索引
    • 分词器
    • Mapping和常见字段类型
    • Index Template&Dynamic Template
    • Elasticsearch聚合分析简介
    • 基于词项和基于全文的搜索
    • 结构化搜索
    • 搜索的相关性算分
    • 单字符串多字段查询
    • SearchTemplate 和 Index Alias 查询
    • Function Score Query 优化算分
    • Term&Phrase Suggester
    • 自动补全于基于上下文的提示
  • Python

  • 面试专题

  • 知识库
  • Elasticsearch
旭日
2023-05-21
目录

ElasticSearch基本概念

# 一、索引

索引可以理解为文档的归类,对比MySQL就是表。

索引的基本格式如下:

{
  "shopping" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "category" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "images" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "price" : {
          "type" : "float"
        },
        "title" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    },
    "settings" : {
      "index" : {
        "creation_date" : "1684457924330",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "pTIeeeSpTAq267GMTIOn0w",
        "version" : {
          "created" : "7010099"
        },
        "provided_name" : "shopping"
      }
    }
  }
}
  • mapping是映射关系,可以理解为对字段的定义。
  • properties属性下就是对应这个索引下有那些字段。

# 二、文档

文档可以理解为ES操作的最小单元,对比MySQL就是数据行。

文档的基本格式如下:

{
        "_index" : "shopping",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "title" : "小米手机",
          "category" : "小米",
          "images" : "photo.jpg",
          "price" : 3999.0
        }
}
  • _index:索引
  • _id:主键
  • _score:相关性打分
  • _source:文档原始json数据

# 三、字段

文档的元数据为一个json格式,其中有对应的属性,这个属于就是字段,对比MySQL就是我们的列(字段)。

现在我们把以上概念和MySQL进行类比:

img

Elasticsearch 7.X 中, Type 的概念已经被删除了。

# 四、节点

节点是一个ES的实例,本质上它就是一个Java进程。

  • Data Node:数据存储的节点,复制保存分片的数据,在数据扩展上起到重要作用。
  • Coordinating Node:负责接收Client请求,将请求分发到合适的节点。

# 五、分片

分片主要两种:主分片和副本分片:

  • 主分片:是用来解决数据水平扩展问题,通过主分片就可以把数据分布到集群内的所有节点上。
  • 副本分片:用来解决数据高可用问题,是主分片的副本。

# 六、集群

集群相当于所有节点的汇总,可以通过如下命令对集群状态进行查看:

# 查看集群的状态
GET _cluster/health
  • Green:主分片和副本都分配正常。
  • Yellow:主分片全部分配完成,有副本分片未能正常分配。
  • Red:有主分片未分配。

# 参考

Elasticsearch 核心技术与实战 (opens new window)

#Elasticsearch
上次更新: 2024/06/29, 15:13:44
高水位和Leader Epoch
文档基本操作

← 高水位和Leader Epoch 文档基本操作→

最近更新
01
基础概念
10-31
02
Pytorch
10-30
03
Numpy
10-30
更多文章>
Theme by Vdoing | Copyright © 2021-2024 旭日 | 蜀ICP备2021000788号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式