es索引

作者: 奋斗的韭菜汪 | 来源:发表于2021-10-15 17:15 被阅读0次

索引的概念

索引是一个虚拟的空间,类似于关系型数据库的table
一个索引至少由一个分片组成,索引可以包含一个主分片和多个副本分片

索引命名(建议)

业务类型命名:名称+数字版本号
日志类型命名:名称+时间

索引的创建:

  • 1、动态创建
    索引无需提前创建,第一条数据插入即可创建完成
    使用场景:非严格数据模型限制规范的场景,如日志、监控
DELETE example_001

GET example_001

PUT /example_001/_doc/1
{
  "name":"wangzx",
  "createDate":"2021-10-05"
}

GET example_001结果:

{
  "example_001" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "createDate" : {
          "type" : "date"
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    },
    "settings" : {
      "index" : {
        "creation_date" : "1633443774651",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "1LrIo5mKTXm1oOvtHnQUsQ",
        "version" : {
          "created" : "7040299"
        },
        "provided_name" : "example_001"
      }
    }
  }
}
  • 2、静态创建
    提前创建号索引,提前做好索引数据分布与响应设置
    应用场景:业务系统数据需要严格规范,或极端情况下,避免集中创建索引时,集群响应时间慢
    创建一个空的索引(没有字段的“表”)
PUT /example-002
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}

创建索引时指定一个索引别名可以通过别名来访问索引元数据信息(索引和别名是多对多关系,一个别名可以用在多个索引上,一个索引也可以有多个别名)

PUT /example-003
{
  "aliases": {
    "example003-aliases": {}
  }
}

GET /example-003
GET /example003-aliases   //和上面效果相同

3、滚动创建


image.png
image.png

如何滚动创建索引(先静态创建带别名的索引,然后post _rollover api)

PUT /example-005-rollover-index-000001
{
  "aliases": {
    "example-005-rollover": {}
  }
}

POST /example-005-rollover/_rollover

结果:
{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "old_index" : "example-005-rollover-index-000001",
  "new_index" : "example-005-rollover-index-000002",
  "rolled_over" : true,
  "dry_run" : false,
  "conditions" : { }
}

索引的属性设置:

  • 静态设置
    先创建空索引然后设置属性
    索引分片:默认1,创建索引时需要指定,之后索引活动期间不可变,后期只能重建
    索引字段类型:字段类型不可变,一旦指定几乎不可变,若要修改,则需要刷新所有历史数据,等同于索引重建

索引文档数据模型(表结构)

es数据模型与传统关系型数据库类比.png

文档模型:Json类型
元数据:_index、_type、_id、_version、 _seqno _primary_term、 其他

相关文章

  • spark 读取 ES(es.resource配置)

    es.resource 可配置为: ES 别名 单个索引名/doc_type 索引1,索引2,索引3

  • Elasticsearch 7 : 自定义 mapping 和

    ES 7 中在创建索引时指定 Mapping ES 7 中先建索引,再自定义 mapping ES 7 建索引时指...

  • ES 相关语句

    ES: 查看索引 添加 创建索引 创建类型 查询

  • ElasticSearch的基本操作

    操作ES的RESTful语法 索引的操作 1、创建一个索引 2、查看一个索引 3、删除一个索引 3.4 ES中Fi...

  • python对es基础的增删改查

    安装API python对索引进行操作 建立es连接 创建索引 删除索引 判断索引存在 对索引加入mapping ...

  • 4.es基本用法

    一.es基础语法 1.索引curl 索引理解:可以理解成mysql的库,但是es中是没有库这个概念的 es是支持r...

  • ElasticSearch的Java操作

    java 连接ES 创建client链接 创建索引 检查索引是否存在,删除索引 检查索引存在 删除索引 Java操...

  • ElasticSearch索引操作

    前面我们在ES的基本概念一文中讲到了索引,ES中索引对应的就是关系型数据库中的库.本小节我们来讲一下ES的有关索引...

  • es索引

    索引的概念 索引是一个虚拟的空间,类似于关系型数据库的table一个索引至少由一个分片组成,索引可以包含一个主分片...

  • Elasticsearch如何实现分布式?

    (1)大概说:索引是ES中存储数据的基本单位,ES中用索引存储数据,索引是拆分成多个shard分片进行分布式存储的...

网友评论

      本文标题:es索引

      本文链接:https://www.haomeiwen.com/subject/hbxnnltx.html