Elasticsearch(一)索引、文档和RESTAPI

文档

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

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

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

    • 可以自行指定ID
    • 也可以由Elasticsearch自动生成

JSON文档

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

image.png

文档的元数据

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

索引

  • index 索引是文档的容器,是一类文档的集合

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

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

索引的不同语义

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

image.png

Type

  • 在7.0之前,一个Index可以设置多个Type
  • 6.0开始,Type已经被废弃。7.0开始,一个索引只能创建一个Type – "_doc"

抽象和类比

传统关系型数据库和Elasticsearch的区别

image.png

REST API

image.png

查看索引相关信息

GET kibana_sample_data_ecommerce

查看索引的文档总数

GET kibana_sample_data_ecommerce/_count

image.png

查看前10条文档,了解文档格式

POST kibana_sample_data_ecommerce/_search
{
}

查看indices

GET /_cat/indices/kibana*?v&s=index

查看指定状态的索引

//黄色
GET /_cat/indices?v&health=yellow
//绿色
GET /_cat/indices?v&health=green
...

按照文档个数排序

GET /_cat/indices?v&s=docs.count:desc

查看具体的字段

GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs,count,mt

查看占用内存

GET /_cat/indices?v&h=i,tm&s=tm:desc

发表评论