【Elasticsearch-03】文档、索引和RESTAPI

1. 文档

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

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

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

    • 你可以自己指定ID
    • 或者通过ElasticSearch自动生成

1.1 JSON文档

  • 一篇文档包含了一系列的字段,类似关系型数据库中表里的一条记录
  • Elasticsearch文档都以JSON形式存在,因为JSON文档,格式灵活,不需要预先定义格式
    • 字段的类型可以指定或者通过Elasticsearch自动进行推算
    • 支持数组 / 支持嵌套
      【Elasticsearch-03】文档、索引和RESTAPI_第1张图片

1.2 元数据

  • 元数据用于标注文档的相关信息
    【Elasticsearch-03】文档、索引和RESTAPI_第2张图片
字段 说明
_index 文档所属的索引名
_type 文档所属的类型名
_id 文档唯一ID
_source 文档的原始Json数据
_id 文档唯一ID
all 整合所有字段内容到该字段,7.x被废除
_version 文档的版本信息
_score 相关性打分

2. 索引 Index

  • 理解ElasticSearch的索引请抛开关系型数据库MySQL等索引的概念,重新认识它。
    【Elasticsearch-03】文档、索引和RESTAPI_第3张图片

  • Index - 索引是文档的容器,是一类文档的集合,相当于MySQL的一个Table

    • Index体现了逻辑空间的概念,每个索引都有自己的Mapping定义,用于定义包含的文档的字段名和字段类型,相当于MySQL的Schema
    • Shard体现了物理空间的概念:索引中的数据分散在Shard上

2.1 索引的Mapping与settings

  • Mapping定义文档字段的类型
  • setting定义不同的数据分布

2.2 关于索引的不通语义

  • 2.2.1 名词:一个ElasticSearch集群中,可以创建很多个不用的索引
  • 2.2.2 动词:保存一个文档到ElasticSearch的过程也叫索引(indexing)
    • ES中,创建一个倒排索引的过程
  • 2.2.3 名词:一个B树索引,一个倒排索引
    【Elasticsearch-03】文档、索引和RESTAPI_第4张图片

3. 类型 Type

  • 在7.0之前,一个Index可以设置多个Types
  • 从6.0开始,Type已经被Deprecated。
  • 7.0开始,一个索引只能创建一个Type - “doc”
    【Elasticsearch-03】文档、索引和RESTAPI_第5张图片

4. 抽象与类比

  • 传统关系型数据库与ES抽象对比图
    【Elasticsearch-03】文档、索引和RESTAPI_第6张图片

5. REST API - 方便被各种语言调用

【Elasticsearch-03】文档、索引和RESTAPI_第7张图片

5.1 一些基本的API

  • 查看节点
_cat/nodes

查看所有index

_cat/indices

你可能感兴趣的:(Java,ElasticSearch)