从零开始学Elasticsearch(二)基本概念

142 阅读2分钟

这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战

一、基本概念:索引、文档

1.1 文档(Document)

  • Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位

    1. 日志文件中的日志项
    2. 一本电影的具体信息/一张唱片的详细信息
    3. MP3播放器里的一首歌/一篇PDF文档中的具体内容
  • 文档回被序列化成JSON格式,保存在Elasticsearch中

    1. JSON对象由字段组成
    2. 每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)
  • 每个文档都有一个Unique ID

    1. 你可以自己指定ID
    2. 或者通过Elasticsearch自动生成

1.2 JSON文档

  • 一篇文档包含了一系列的字段。类似数据库表中一条记录
  • JSON文档,格式灵活,不需要预先定义格式
    1. 字段的类型可以指定或者通过Elasticsearch自动推算
    2. 支持数组/支持嵌套

image.png

1.3 文档的元数据

image.png

  • 元数据,用于标注文档的相关信息
    1. _index -文档所属的索引名
    2. _type -文档所属的类型名
    3. _id -文档唯一ID
    4. _source -文档的原始JSON数据
    5. _all -整合所有字段内容到该字段,已被废除
    6. _version -文档的版本信息
    7. _score -相关性打分

1.4 索引

image.png

  • Index-索引是文档的容器,是一类文档的结合
    1. Index体现了逻辑空间的概念:每个索引都有自己的Mapping定义,用于定义包含的文档的字段名和字段类型
    2. Shard体现了物理空间的概念:索引中的数据分散在Shard上
  • 索引的Mapping与Settings
    1. Mapping 定义文档字段的类型
    2. Setting定义不同的数据分布

1.5 索引的不同语意

image.png

  • 名词:一个Elasticsearch 集群中,可以创建很多个不同的索引
  • 动词:保存一个文档到Elasticsearch的过程也叫索引(indexing)
    • ES中,创建一个倒排索引的过程
  • 名词:一个B树索引,一个倒排索引

二、关系型数据库与Elasticsearch的类比

关系型数据库Elasticsearch
索引
每行的数据文档(Document)
每个字段文档中的字段(Field)
SchemaMapping
SQLDSL