Elastic Search的RestFul API入门:index索引的增删改查

在我们开始深入探讨Elasticsearch的Restful API之前,有一点非常重要,那就是Elasticsearch存储的数据是JSON结构的。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript Programming Language的一个子集,但是独立于语言,具有广泛的语言支持。

Elasticsearch使用JSON作为其数据的存储和交换格式,这意味着当我们使用Restful API进行索引的增删改查操作时,我们将会处理的是JSON格式的数据。这使得我们可以轻松地存储和检索复杂的数据结构,同时也使得我们可以利用JSON的灵活性和易用性来满足各种数据需求。

在本篇文章中,我们将详细介绍如何使用Restful API来创建、删除、更新和查询JSON格式的索引。我们将深入了解每个操作的具体步骤和参数,并通过实际示例来演示其用法。

“索引”(index)是Elasticsearch中的基本概念,类似于传统数据库中的"数据表"。它用于存储和组织数据,每个索引可以包含多个文档,而每个文档则是JSON格式的数据记录。索引定义了文档的结构和字段映射,同时支持全文搜索、聚合和分析,使Elasticsearch成为强大的搜索和分析引擎。我们来学习index索引的增删改查,这也是在工作和学习中非常非常重要的一项内容,在本专栏中ES或者es表示Elastic Search。这节课的大纲如下:

在这里插入图片描述

index索引的增删改查

  • index索引的增
    • 创建索引
    • 克隆索引-先决条件
    • 克隆索引
    • 克隆索引-后置条件
    • 开启索引
  • index索引的删
    • 删除索引
    • 关闭索引
  • index索引的改
    • 清除索引缓存
    • 更新索引信息
    • 刷新索引
  • index索引的查
    • 分析索引磁盘使用情况
    • 查看索引是否存在
    • 获取索引信息
    • 获取索引分片信息
    • 获取索引统计信息

index索引的增

这里的增不仅仅局限于index的增加,还包括索引的克隆和开启索引的操作。这里,index_test是索引的名称,可以根据需求进行自定义,而其中的_开头的则代表ES官方的API,不可以进行自定义,所以我们不能创建索引以_开头。否则会报错:

Invalid index name [_index_test], must not start with '_', '-', or '+'

创建索引

PUT/index_test

这个请求的作用是创建一个名为 “index_test” 的索引(index)在 Elasticsearch 中。可以理解为在mysql中创建了一个什么字段都没有的空表。

在这里插入图片描述

返回的响应示例,意思如下:

  • "acknowledged": true 表示请求已被成功接受和执行,没有出现错误或问题。

  • "shards_acknowledged": true 表示请求已被索引的所有分片(shards)成功接受和执行。这表明请求影响到了索引的所有部分。

  • "index": "index_test" 提供了响应中的索引名称,这表明响应是与名为 “index_test” 的索引相关的。

这通常是一个表示成功的响应,表明操作已成功完成。

克隆索引-先决条件

克隆索引提供了一种灵活的方式来复制现有索引,这种功能有助于提高数据管理的效率和灵活性。

PUT/index_test/_settings
{"settings": {"index.blocks.write": true}
}

_settings就表示着官方的api,表示设置索引的相关信息。我们如果需要复制一个索引到新的索引要开启旧索引(index_test)的只读功能,保证在克隆的时候没有新数据进入到旧索引当中来。这通常用于临时禁止对索引的写入,以进行维护、备份或其他管理操作。

在这里插入图片描述

克隆索引

POST/index_test/_clone/index_test_clone

这个时候我们就可以开始克隆索引了,创建一个与原始索引相同结构和设置的克隆索引,其中包括索引映射、分片配置等。这对于创建备份、测试、开发或数据分析的目的非常有用。这里要注意的是index_test_clone索引不能优先存在。

在这里插入图片描述

克隆索引-后置条件

PUT/index_test/_settings
{"settings": {"index.blocks.write": false}
}

克隆之后取消原索引和克隆索引的写入状态,两个索引互不干涉,之后可以对克隆索引进行操作,而不会影响原始索引的数据。

在这里插入图片描述

开启索引

POST/index_test/_open

开启索引:恢复对索引进行操作,可逆,即可以随时关闭。当索引被关闭(锁定)时,无法对其执行写入或查询操作。

在这里插入图片描述

index索引的删

删除索引

DELETE/index_test

删除索引是一个不可逆操作,谨慎谨慎再谨慎!!!当执行这个请求时,将永久删除该索引以及其中包含的所有数据。

在这里插入图片描述

关闭索引

POST/index_test/_close

关闭索引之后不可以对索引进行操作,但是是可逆的,即可以随时打开,当索引被关闭(锁定)时,无法对其执行写入或查询操作。

在这里插入图片描述

index索引的改

清除索引缓存

POST/index_test/_cache/clear

清除索引的缓存通常用于释放系统内存或在特定情况下强制刷新索引的缓存。这可以在需要时用于确保索引的查询性能或确保查询结果的准确性。清除索引的缓存可能会导致查询性能下降,因为查询将不再从缓存中获取结果,而需要重新计算。

在这里插入图片描述

更新索引信息

PUT/index_test/_settings
{"index" : {"number_of_replicas" : 2}
}

这次body的内容解释如下:

  • index.number_of_replicas: 设置默认索引副本个数,默认为1个副本。

这里还另外介绍一个知识:index.number_of_shards:默认索引分片个数,默认为1片。

索引分片对ES的查询性能有很大的影响。1个副本是指index.number_of_shards的一个完全拷贝;如果有5个主分片1个副本分片,即总分片数为10。

在这里插入图片描述

刷新索引

GET/_refresh

使用 _refresh 请求来强制执行刷新,以便最新的数据对搜索结果立即可见。在 es中,数据写入操作通常不会立即对搜索结果生效,而是会在稍后自动进行刷新。

在这里插入图片描述

默认情况下,Elasticsearch 每秒定期刷新索引,但仅限于过去 30 秒内收到一个或多个搜索请求的索引。 ——官网

index索引的查

分析索引磁盘使用情况

POST/index_test/_disk_usage?run_expensive_tasks=true

可以获得关于 “index_test” 索引磁盘使用情况的信息,以便监视索引的存储需求。请注意,运行可能消耗资源的任务可能会对 Elasticsearch 节点的性能产生一定的影响。这个一般在工作中很少用到,可以了解一下。

在这里插入图片描述

查看索引是否存在

HEAD/index_test

HEAD 请求只返回请求资源的元数据,而不返回实际的内容。当执行 HEAD /index_test 请求时,Elasticsearch会检查名为 “index_test” 的索引是否存在。如果该索引存在,服务器将返回一个包含响应标头信息但没有主体内容的响应。这可以用于快速检查索引是否存在,而不必获取其全部内容。

这对于执行索引存在性检查以及执行某些轻量级操作非常有用,因为它不会返回实际的数据,从而降低了网络传输的开销。

在这里插入图片描述

获取索引信息

GET/index_test

这个请求会返回 “index_test” 索引中的索引相关数据,以供进一步的查询、分析或展示。例如aliases(别名信息),mappings(字段信息),settings(索引信息)。

在这里插入图片描述

例如上面setting信息返回的意思如下:

设置项描述
“routing.allocation.include”索引的数据分配策略
“number_of_shards”主分片数量
“provided_name”索引的名称
“creation_date”索引的创建日期
“number_of_replicas”副本数量
“uuid”索引的唯一标识符
“version.created”索引的创建版本

获取索引分片信息

GET/index_test/_shard_stores

此请求将返回关于索引分片在各个节点上存储情况的详细信息。这些信息有助于了解索引分片在节点上的分布情况以及有关节点的属性和角色的信息。这对于监视和管理 Elasticsearch 索引和分片有用。但是工作中不常用,了解即可。

在这里插入图片描述

获取索引统计信息

GET/index_test/_stats

这个请求通常用于监视索引的性能和状态,以便进行性能优化和故障排除。响应中包含的信息有助于了解索引的健康状况和性能特征。但是工作中不常用,了解即可。

在这里插入图片描述

本节课程主要覆盖了ES索引操作的几个关键API,这是我们在工作和学习中频繁运用的核心功能。我们重点关注了对index索引的增、删、改、查等关键操作。通过合理运用这些API,我们可以高效地管理和操控索引,以满足各种类型的数据存储和检索需求。在实际操作过程中,请务必按照课程中所提供的API逐步操作,仅观看教程无法有效掌握相关技能。试读环节到此结束,下一篇文章仍将有限时开放的试读环节。接下来我们将深入了解ES的字段类型——mapping。期待下一节课程与大家再次相见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/198480.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拜耳阵列(Bayer Pattern)以及常见彩色滤波矩阵(CFA)

一、拜耳阵列的来源 图像传感器将光线转化成电流,光线越亮,电流的数值就越大;光线越暗,电流的数值就越小。图像传感器只能感受光的强弱,无法感受光的波长。由于光的颜色由波长决定,所以图像传播器无法记录…

解决 VS2022 关于 c++17 报错: C2131 表达式必须含有常量值

使用 VS2022 编译 ORB-SLAM3 加载Vocabulary 二进制ORBvoc.bin 时,在 DBOW2 里修改 TemplatedVocabulary.h 代码显示这样的错误: 编译器错误 C2131 表达式的计算结果不是常数 定位到我的代码中: char buf [size_node] ; 原因 : …

Vatee万腾科技创新之舟:Vatee数字化力量引领未来的独特路径

在数字化的大潮中,Vatee万腾如一艘科技创新之舟,在未来的海洋中翱翔。vatee万腾以强大的数字化力量为桨,引领着行业向着新的、独特的路径前行,塑造着数字时代的未来。 Vatee万腾不仅仅是一家科技公司,更是一艘创新之舟…

(八)、基于 LangChain 实现大模型应用程序开发 | 基于知识库的个性化问答 (检索 Retrieval)

检索增强生成(RAG)的整体工作流程如下: 在构建检索增强生成 (RAG) 系统时,信息检索是核心环节。检索是指根据用户的问题去向量数据库中搜索与问题相关的文档内容,当我们访问和查询向量数据库时可能会运用到如下几种技术…

uni-app:前端实现心跳机制(全局)+局部页面控制心跳暂停和重新心跳

一、App.vue全局中写入心跳 在data中定义变量heartbeatTimer,便于暂停心跳使用在onLaunch中引用开始心跳的方法startHeartbeat()写入开始心跳方法写入暂停心跳方法写入请求后端刷心跳机制 定义变量 // 在全局设置的心跳机制中添加一个变量来保存定时器的标识 data(…

Find My蓝牙耳机|苹果Find My技术与耳机结合,智能防丢,全球定位

蓝牙耳机就是将蓝牙技术应用在免持耳机上,让使用者可以免除恼人电线的牵绊,自在地以各种方式轻松通话。自从蓝牙耳机问世以来,一直是行动商务族提升效率的好工具。正是应为蓝牙耳机小巧无线,人们越来越喜欢随身携带蓝牙耳机出门&a…

【论文阅读】基于隐蔽带宽的汽车控制网络鲁棒认证(一)

文章目录 Abstract第一章 引言1.1 问题陈述1.2 研究假设1.3 贡献1.4 大纲 第二章 背景和相关工作2.1 CAN安全威胁2.1.1 CAN协议设计2.1.2 CAN网络攻击2.1.3 CAN应用攻击 2.2 可信执行2.2.1 软件认证2.2.2 消息身份认证2.2.3 可信执行环境2.2.4 Sancus2.2.5 VulCAN 2.3 侧信道攻…

文件编码、转换、乱码问题

文件编码 用来表示文本内容的字符集和字符编码方式,决定了在文本文件中使用的字符集和字符的二进制表示方式。常见的文件编码包括 UTF-8、UTF-16、ASCII、ISO-8859-1 等。选择文件编码时,需要考虑到所支持的字符集范围、编码方式对特定语言的支持程度以…

手机,蓝牙开发板,TTL/USB模块,电脑四者之间的通讯

一,意图 通过手机蓝牙连接WeMosD1R32开发板,开发板又通过TTL转USB与电脑连接.手机通过蓝牙控制开发板上的LED灯的开,关,闪等动作,在电脑上打开串口监视工具观察其状态.也可以通过电脑上的串口监视工具来控制开发板上LED灯的动作,而在手机蓝牙监测工具中显示灯的状态. 二,原料…

在Go编程中调用外部命令的几种场景

1.摘要 在很多场合, 使用Go语言需要调用外部命令来完成一些特定的任务, 例如: 使用Go语言调用Linux命令来获取执行的结果,又或者调用第三方程序执行来完成额外的任务。在go的标准库中, 专门提供了os/exec包来对调用外部程序提供支持, 本文将对调用外部命令的几种使用方法进行总…

代码逻辑修复与其他爬虫ip库的应用

在一个项目中,由于需要设置 http_proxy 来爬虫IP访问网络,但在使用 requests 库下载文件时遇到了问题。具体表现为在执行 Python 脚本时,程序会阻塞并最终超时,无法正常完成文件下载。 解决方案 针对这个问题,我们可以…

kubenetes-服务发现和负载均衡

一、服务发布 kubenetes把服务发布至集群内部或者外部,服务的三种不同类型: ClusterlPNodePortLoadBalancer ClusterIP是发布至集群内部的一个虚拟IP,通过负载均衡技术转发到不同的pod中。 NodePort解决的是集群外部访问的问题,用户可能不…

基于C#实现最长公共子序列

一、作用 最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法,作为码农,此算法是我们的必备基本功。 二、概念 举个例子,cnblogs 这个字符串中子序列有多少个呢?很显然有 27 个,比如其…

人工智能-深度学习之残差网络(ResNet)

随着我们设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力,在这种网络中,添加层会使网络更具表现力, 为了取得质的突破,我们需要一些数学基础知识。 ResNet沿…

构建自定义ChatGPT,微软推出Copilot Studio

11月16日,微软在美国西雅图举办“Microsoft Ignite 2023”全球开发者大会。本次人工智能成为重要主题,微软几乎把所有产品都集成了生成式AI功能并发布了一系列全新产品。 其中,微软重磅推出了Copilot Studio(预览版)&…

助力安全生产--韩施电气为您提供电动机保护及电机故障解决方

上海韩施电气自成立于2008年,是一家专门从事销售电气自动化设备、电力设备、机电设备的综合型贸易公司,公司自成立以来一直专注于EOCR产品的推广销售和技术服务,成为韩国施耐德EOCR在国内的总代理,并授予代理证书,我们…

11 月 11 日 ROS 学习笔记——ROS 架构及概念

文章目录 前言一、 ROS 文件系统级1). 工作空间 Ws2). 功能包3). 消息 msg4). 服务 srv 二、计算图级1). 动态加载节点 nodelet2). 主题 topic3). 服务 srv4). 消息 msg5). 试用练习5). 创建工作空间6). 创建 ROS 功能包和元功能包7). 编译ROS功能包8). 使用 ROS 节点9). 使用主…

球幕投影有哪些常见的物理表现形式?

近年来,投影技术不断发展完善,给内容的表达方式带来了突破,使其展示形式不再局限于平面,即使在弧面、球面等异形幕墙上,也能呈现出令人惊叹的视觉画面。其中球幕投影备受关注,它以半球形屏幕将图像投影到球…

2023年AI生成音频研究报告

第一章 行业概况 1.1 定义 AI音频生成行业,作为人工智能生成内容(AIGC)技术渗透的关键领域,正迅速成为技术革新的前沿阵地。这一领域专注于运用先进的人工智能技术和复杂算法来创造音频内容,覆盖了语音合成、音乐制作…

直流充电桩测试仪的作用

直流充电桩测试仪主要用于对充电桩进行全面的功能测试和性能评估,以确保其正常运行和安全使用。直流充电桩测试仪可以对充电桩的各个功能进行测试,包括连接性测试、通信测试、充电功率测试等。通过测试可以检测充电桩是否正常工作,是否能够正…