【Elasticsearch】学好Elasticsearch系列-索引的CRUD

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 【Elasticsearch】学好Elasticsearch系列-索引的CRUD

先看后赞,养成习惯。

点赞收藏,人生辉煌。

这章主要是介绍Elasticsearch中索引的基本操作API,即增删改查(CRUD)。

创建索引

PUT /index?pretty

?pretty可加可不加,主要就是对输出进行格式化,更加好看点。

删除索引

DELETE /index?pretty

查询数据

查询当前索引的信息

GET /index/_search
//_search:查询 index 索引下的所有信息。

输出示例如下:

{
  //消耗时间
  "took": 11,
  "timed_out": false,
  "_shards" : {
  "total": 1,
  "successful" : 1,
  "skipped": 0,
  "failed": 0
},
"hits": {
  "total": {
    "value": 0,
    "relation": "eq"
  },
  "max_ score": null,
  "hits": []
}
}

获取所有索引数据的信息

GET _cat/indices?v

查询指定文档id

GET /index/_doc/doc_id

添加 & 更新数据

PUT /index/_doc/doc_id
{
 JSON数据
}
//例如:PUT /index/_doc/1
//{
//  "field1": "value1",
//  "field2": 123
//}

PUT也可以用于更新数据,比如我有一个文档有两个字段:name和age。我想更新name为:小明,可以这么写:

PUT /index/_doc/1
{
"name": "小明"
}

需要注意的是PUT既可以用于插入,也可以用于更新,所以PUT的更新是全量更新,而不是部分更新。也就是上面的语句执行之后,文档会被直接替换,只会有name字段,字段值为小明

如果我们想要部分更新的话,可以使用POST,示例如下:

POST /index/_doc/id/_update
{
  "doc": {
    "name": "小明"
  }
}

把PUT换位POST,并把更新的字段包进doc里,就能实现更新部分字段。除了上面那种写法外,还可以使用下面这种写法,更推荐使用下面这种写法:

POST /index/_update/1
{
"doc": {
"name": "小明"
}
}

cat命令

cat命令在es中会经常使用,下面介绍cat命令中常用的几个命令。

公共参数

cat命令组成形式是:GET /_cat/indices?format=json&pretty?之前是命令,之后是参数,多个参数用&分隔。公共参数有下:

//v 显示更加详细的信息
GET /_cat/master?v
//help 显示命令结果字段说明
GET /_cat/master?help
//h 显示命令结果想要展示的字段
GET /_cat/master?h=ip,node
GET /_cat/master?h=i*,node
//format 显示命令结果展示格式,支持格式类型:text json smile yaml cbor
GET /_cat/indices?format=json&pretty
//s 显示命令结果按照指定字段排序
GET _cat/indices?v&s=index:desc,docs.count:desc

常用命令

aliases 显示别名

GET /_cat/aliases

GET /_cat/aliases是获取所有别名,如果想获得某个索引的别名可以使用:GET index/alias

allocation 显示每个节点的分片数和磁盘使用情况

GET /_cat/allocation

count 显示整个集群或者索引的文档个数

GET /_cat/count
GET /_cat/count/index

fielddata 显示每个节点字段所占的堆空间

GET /_cat/fielddata
GET /_cat/fielddata?fields=name,addr

health 显示集群是否健康

GET /_cat/health

indices 显示索引的情况

GET /_cat/indices
GET /_cat/indices/index

master 显示master节点信息

GET /_cat/master

nodes 显示所有node节点信息

GET /_cat/nodes

recovery 显示索引恢复情况

当索引迁移的任何时候都可能会出现恢复情况,例如,快照恢复、复制更改、节点故障或节点启动期间。

GET /_cat/recovery

thread_pool 显示每个节点线程运行情况。

GET /_cat/thread_pool
GET /_cat/thread_pool/bulk
GET /_cat/thread_pool/bulk?h=id,name,active,rejected,completed

shards 显示每个索引各个分片的情况

展示索引的各个分片,主副分片,文档个数,所属节点,占存储空间大小

GET /_cat/shards
GET /_cat/shards/index
GET _cat/shards?h=index,shard,prirep,state,unassigned.reason

分片的状态:INITIALIZING初始化;STARTED分配完成;UNASSIGNED不能分配;可以通过unassigned.reason属性查看不能分配的原因。

segments 显示每个segment的情况

包括属于索引,节点,主副,文档数等

GET /_cat/segments
GET /_cat/segments/index

templates 显示每个template的情况

GET /_cat/templates
GET /_cat/templates/mytempla*


篇文章就到这里,感谢阅读,如果本篇博客有任何错误和建议,欢迎给我留言指正。文章持续更新

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
2月前
|
存储 自然语言处理 关系型数据库
ElasticSearch索引 和MySQL索引那个更高效实用那个更合适
ElasticSearch索引 和MySQL索引那个更高效实用那个更合适
39 0
|
3月前
|
存储 算法 NoSQL
Elasticsearch拆分索引知多少
Elasticsearch拆分索引知多少
35 0
|
4月前
|
数据采集 存储 自然语言处理
elasticsearch 跨索引联合多条件查询
elasticsearch 跨索引联合多条件查询
|
5月前
|
API 索引
ElasticSearch索引模板
ElasticSearch索引模板
136 1
|
5月前
|
JSON 自然语言处理 数据库
数据库-ElasticSearch入门(索引、文档、查询)
数据库-ElasticSearch入门(索引、文档、查询)
295 0
|
2月前
|
JSON 监控 数据管理
【Elasticsearch专栏 12】深入探索:Elasticsearch使用索引生命周期管理(ILM)自动化删除旧数据
Elasticsearch的ILM功能允许用户定义策略,自动管理索引从创建到删除的生命周期。用户可以设置策略,根据索引年龄或大小自动删除旧数据,节省存储空间。通过应用ILM策略于索引模板,新索引将遵循预定义的生命周期。用户还可以监控ILM状态,确保策略按预期执行。使用ILM,用户可以高效地管理数据,确保旧数据及时删除,同时保持数据完整性和安全性。
|
4月前
|
索引
elasticsearch 创建索引模版template
elasticsearch 创建索引模版template
|
3月前
|
存储 自然语言处理 搜索推荐
【Elasticsearch专栏 01】深入探索:Elasticsearch的正向索引和倒排索引是什么?
正向索引根据文档ID直接查找文档内容,适用于精确匹配场景;而倒排索引则基于文档内容构建,通过关键词快速定位相关文档,适用于全文搜索,显著提高查询效率,是搜索引擎的核心技术。
|
7天前
|
安全 API 数据安全/隐私保护
Elasticsearch 通过索引阻塞实现数据保护深入解析
Elasticsearch 通过索引阻塞实现数据保护深入解析
|
7天前
|
安全 Java API
SpringBoot 实现 elasticsearch 索引操作(RestHighLevelClient 的应用)
SpringBoot 实现 elasticsearch 索引操作(RestHighLevelClient 的应用)
13 1

热门文章

最新文章