当前位置: 首页 > article >正文

es索引操作命令

索引操作 index

创建索引

put 方法创建索引

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

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

结果:

#! 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
}

在这里插入图片描述

post 方法创建索引

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

POST /test2/type2
{
  "name":"zhangsan",
  "age":18,
  "birth":"2000-01-20"
}

结果:

#! 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
}

对比 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
{
  "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"
      }
    }
  }
}

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

指定字段类型

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

PUT /test3
{
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "age":{
        "type": "long"
      },
      "birth":{
        "type": "date"
      }
    }
  }
}

结果:

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "test3"
}

映射数据是字段名: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

结果:

{
  "test3" : {
    "mappings" : {
      "properties" : {
        "age" : {
          "type" : "long"
        },
        "birth" : {
          "type" : "date"
        },
        "name" : {
          "type" : "text"
        }
      }
    }
  }
}

查看索引健康情况

GET _cat/indices?v

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

在这里插入图片描述

删除索引

# delete 索引名称
DELETE test3

结果:

{
  "acknowledged" : true
}

http://www.kler.cn/a/272819.html

相关文章:

  • 【Linux】Socket编程-TCP构建自己的C++服务器
  • Vue篇-07
  • linux手动安装mysql5.7
  • 大疆发布可折叠航拍无人机,仅重249g,支持 4800 万像素拍摄
  • Jmeter如何进行多服务器远程测试
  • JVM远程调试原理剖析
  • docker-compose一键部署若依前后端分离版本
  • Android Framework基础之C语言入门
  • 线程的通俗解释
  • SpringBoot(数据库操作 + druid监控功能)
  • 仰卧起坐计数,YOLOV8POSE
  • Qt篇——QChartView获取鼠标停留位置的数值
  • B140XW01 V8 +OZ9956B PDF
  • echarts实践总结(常用一):柱状图(特点:渐变色、点击缩放、左右滑动、悬浮展示样式)
  • 丘一丘正则表达式
  • Redis内存淘汰机制
  • 2024.3.14 ARM
  • 免费开源、支持自建服务的团队协作、个人学习文档管理系统
  • 8. 文字穿透效果
  • 【九】【算法分析与设计】双指针(3)
  • 蓝桥杯每日一题(BFS)
  • “代码不熄,创造不止:揭秘程序员为何让电脑永不停歇“
  • DM数据库(docker)
  • 【LeetCode每日一题】310. 最小高度树
  • 如何计算视频流需要的服务器带宽
  • 在AI创业热潮下,如何抓住AI赚钱机会,实现人生逆袭