当前位置:   article > 正文

es索引操作命令_es创建索引命令

es创建索引命令

索引操作 index

创建索引

put 方法创建索引

使用 put 创建索引时必须指明文档id,否则报错

# PUT 创建命令
# test1 索引名称
# type1 类型名称,默认为_doc,已经被废弃
# 1 文档id 
PUT /test1/type1/1
{
  "name":"zhangsan",
  "age":18,
  "birth":"2000-01-20"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果:

#! Deprecation: [types removal] Specifying types in document index requests is deprecated, use the typeless endpoints instead (/{index}/_doc/{id}, /{index}/_doc, or /{index}/_create/{id}).
{
  "_index" : "test1",     	// 索引
  "_type" : "type1",		// 类型
  "_id" : "1",				// id
  "_version" : 1,			// 版本
  "result" : "created",		// 操作类型
  "_shards" : {				// 分片信息
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

post 方法创建索引

post 如果没有指明文档id,会随机生成一个

POST /test2/type2
{
  "name":"zhangsan",
  "age":18,
  "birth":"2000-01-20"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

结果:

#! Deprecation: [types removal] Specifying types in document index requests is deprecated, use the typeless endpoints instead (/{index}/_doc/{id}, /{index}/_doc, or /{index}/_create/{id}).
{
  "_index" : "test2",
  "_type" : "type2",
  "_id" : "3D_WQY4BOf0ywiICmI8O",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

对比 mysql :

PUT test1/type1/1 : 索引test1相当于关系型数据库的库,类型type1就相当于表 ,1 代表数据中的主键 id

这里需要补充的是 ,在 es5 版本前,一个索引下可以创建多个类型,但是在之后,一个索引只能对应一个类型,默认为 _doc,而 id 相当于关系型数据库的主键id若果不指定就会默认生成一个20位的uuid,属性相当关系型数据库的column(列)。

而结果中的 result 则是操作类型,现在是 created ,表示第一次创建。如果再次点击执行该命令那么 result 则会是 updated ,我们细心则会发现 _version 开始是1,现在你每点击一次就会增加一次。表示第几次更改。

查看索引信息

# get 索引名称
GET test1
  • 1
  • 2
{
  "test1" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "age" : {
          "type" : "long"
        },
        "birth" : {
          "type" : "date"
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    },
    "settings" : {
      "index" : {
        "creation_date" : "1710501416895",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "hemDp4F3T5ePsAZmaO5Ijg",
        "version" : {
          "created" : "7080099"
        },
        "provided_name" : "test1"
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

可以看到 name、age、birth 字段指定了类型 text、long、date ,说明 es 会根据字段的值指定默认的类型

指定字段类型

如果想要自己指定字段的类型,使用映射

PUT /test3
{
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "age":{
        "type": "long"
      },
      "birth":{
        "type": "date"
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

结果:

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "test3"
}
  • 1
  • 2
  • 3
  • 4
  • 5

映射数据是字段名:json 数据,上面只指定了type(数据类型),其实可以指定很多属性

  • type:数据类型,es 中支持的数据类型非常丰富,主要使用以下几个:
    • string 类型,又分两种:
      • text:可分词
      • keyword:不可分词,数据会作为完整字段进行匹配
    • Numerical:数值类型,分两类:
      • 基本数据类型:long、integer、short、byte、double、float、half_float
      • 浮点数的高精度类型:scaled_float
    • Date:日期类型
    • Array:数组类型
    • Object:对象
  • index:是否索引,默认为 true,所有字段都会被索引,被索引则可以用来搜索,没有则不可以
  • store:是否将数据进行独立存储,默认为 false,原始的文本会存储在 _source 里面,默认情况下其他提取出来的字段都不是独立存储的,是从 _source 里面提取出来的。当然你也可以独立的存储某个字段,只要设置 “store”: true 即可,获取独立存储的字段要比从 _source 中解析快得多,但是也会占用更多的空间,所以要根据实际业务需求来设置。
  • analyzer:分词器,这里的 ik_max_word 即使用 ik 分词器

查看索引映射

# get /索引名称/_mapping
GET /test3/_mapping
  • 1
  • 2

结果:

{
  "test3" : {
    "mappings" : {
      "properties" : {
        "age" : {
          "type" : "long"
        },
        "birth" : {
          "type" : "date"
        },
        "name" : {
          "type" : "text"
        }
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

查看索引健康情况

GET _cat/indices?v
  • 1

可以查看我们所有索引的状态健康情况,分片,数据储存大小等等。

在这里插入图片描述

删除索引

# delete 索引名称
DELETE test3
  • 1
  • 2

结果:

{
  "acknowledged" : true
}
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/825902
推荐阅读
相关标签
  

闽ICP备14008679号