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

【Elasticsearch】数据简单操作(二)

简介:Elasticsearch(ES)是一个开源的分布式搜索和分析引擎,用于快速存储、搜索和分析大量数据。它具有高性能、可扩展性和灵活性的特点,被广泛用于构建实时搜索、日志分析、数据可视化等应用。

本文主要介绍ES索引的操作,索引中数据的操作,增、删、改功能。

一、环境准备

版本

Docker version 20.10.22
elasticsearch:7.13.3
kibana:7.13.3
ps:具体启动命令参考第一篇ES博客

二、创建索引

创建索引

创建索引,my_test_index,分别有四个字段id、name、age、remark
PUT:代表请求方式为 put 类型
my_test_index:代表索引的名称
number_of_shards:分片数
number_of_replicas:副本数

正如上述所说,put请求是restful请求中的类型,也就是说es支持http请求的方式执行命令,只需在/前添加es的地址即可。

PUT /my_test_index_part2
{"settings": {"number_of_shards": 3,"number_of_replicas": 1},"mappings": {"properties": {"id": {"type": "integer"},"name": {"type": "keyword"},"age": {"type": "integer"},"remark": {"type": "text"}}}
}// 执行结果
{"acknowledged" : true,"shards_acknowledged" : true,"index" : "my_test_index_part2"
}

三、数据操作

添加数据(Document)

索引(index)中的数据称为document,一条document相当于一条数据,下面介绍几种添加数据的方法

POST /<index>/_doc
PUT /<index>/_doc/<_id>POST /<index>/_create/<_id>
PUT /<index>/_create/<_id>

第一个单词代表请求方式、<index>指索引名称、_doc_create代表是两种方式插入数据,下面开始插入数据

_doc方式

分别执行下面命令

POST /my_test_index_part2/_doc
{"id": "1","name": "张三","age": "18","remark": "张三爱吃肉"
}POST /my_test_index_part2/_doc/2
{"id": "2","name": "李四","age": "19","remark": "李四爱吃水果"
}PUT /my_test_index_part2/_doc/3
{"id": "3","name": "王五","age": "20","remark": "王五爱吃蔬菜"
}GET /my_test_index_part2/_search

先说结论,在_doc的情况下

  • POST 可以创建成功,但是 _id 是es随机给定的
  • POST + <_id> 可以创建成功,_id也是我们指定的
  • PUT 不可以运行
  • PUT + <_id> 可以创建成功,_id也是我们指定的

运行结果如下:

{// 省略...."hits" : {"total" : {"value" : 3,"relation" : "eq"},"max_score" : 1.0,"hits" : [{"_index" : "my_test_index_part2","_type" : "_doc","_id" : "2","_score" : 1.0,"_source" : {"id" : "2","name" : "李四","age" : "19","remark" : "李四爱吃水果"}},// 省略....{"_index" : "my_test_index_part2","_type" : "_doc","_id" : "8tf8sYoBBTGuuZu3VQCK","_score" : 1.0,"_source" : {"id" : "1","name" : "张三","age" : "18","remark" : "张三爱吃肉"}}]}
}
_create方式

分别执行下面命令

POST /my_test_index_part2/_create/4
{"id":"4","name": "李四四","age": "21","remark":"李四四爱吃水果"
}PUT /my_test_index_part2/_create/5
{"id":"5","name": "王五五","age": "22","remark":"王五五爱吃蔬菜"
}GET /my_test_index_part2/_search

结论,在_create的情况下

  • POST 不可以运行
  • POST + <_id> 可以创建成功,_id也是我们指定的
  • PUT 不可以运行
  • PUT + <_id> 可以创建成功,_id也是我们指定的

数据(Document)修改

在上述命令中remark字段添加叹号后运行结果,只有_doc带有<_id>的命令执行成功,其他均失败。结论:必须指定**<_id>**,在**<_doc>**下进行执行才行。

POST /my_test_index_part2/_doc/5
{"id":"5","name": "王五五","age": "22","remark":"王五五爱吃蔬菜!!!"
}// 执行此命令查看修改结果
GET /my_test_index_part2/_search

删除

<_id>填写返回的_id字段的值即可

DELETE /<index>/_doc/<_id>DELETE /my_test_index/_doc/aCnJjYoBcmOMV0ezI5zx

四、结论

新增

POST /<index>/_doc
POST /<index>/_doc/<_id>

  • <_id>不指定时,ES会为我们自动生成id;
  • 指定<_id>时,且id在索引中不存在,ES将添加一条指定id的数据;
  • 指定<_id>时,但id在索引中存在,ES将会更新这条数据;

PUT /<index>/_doc/<_id>

  • <_id>必须指定,不指定会报错;
  • <_id>在索引中不存在,为添加新数据;
  • <_id>在索引中存在,为修改数据;

POST /<index>/_create/<_id>
PUT /<index>/_create/<_id>

  • id必须指定;
  • 指定的id如果在索引中存在,报错,添加不成功;
  • 指定的id在索引中不存在,添加成功,符合预期;

删除

DELETE /<index>/_doc/<_id>

查询

单条
GET /<index>/_doc/<_id>
全部
GET /<index>/_doc/_search

相关文章:

【Elasticsearch】数据简单操作(二)

简介&#xff1a;Elasticsearch&#xff08;ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;用于快速存储、搜索和分析大量数据。它具有高性能、可扩展性和灵活性的特点&#xff0c;被广泛用于构建实时搜索、日志分析、数据可视化等应用。 本文主要介绍ES索引的操…...

4 vCPU 实例达成 100 万 JSON API 请求/秒的优化实践

“性能工程” &#xff08;Performance engineering&#xff09;是个日渐流行的概念。顾名思义“性能工程”是包含在系统开发生命周期中所应用的一个技术分支&#xff0c;其目的就是确保满足非功能性的性能需求&#xff0c;例如&#xff1a;性能、可靠性等。由于现代软件系统变…...

呼叫中心系统有什么优势

在随着企业的管理水平也在不断提高。企业经营管理中所涉及到的各种复杂问题都有逐渐凸显出来。传统的呼叫中心已无法满足企业服务需求和客户满意度变化的要求。因此通过呼叫中心系统将企业业务流程和数据整合起来进行管理和运营已经成为目前企业管理领域中较为流行和成熟之选。…...

如何在linux操作系统下安装nvm

本文主要介绍如何在linux操作系统下安装nvm&#xff0c;如果想知道nvm如何在windows操作系统下使用&#xff0c;请参考文章如何通过nvm管理多个nodejs版本_nvm 查看所有node版本-CSDN博客。 1、nvm下载 nvm全称Node Version Manager&#xff0c;即Node版本管理器。访问官网地址…...

Linux 入门:基本指令

本篇文章来介绍我们在初学Linux时可以会碰倒的一些基本指令&#xff0c;让我们对这些指令有一个基本的了解。 目录 01. ls 指令 02. pwd 命令 03. cd 指令 04. touch 指令 05. mkdir 指令&#xff08;重要&#xff09; 06. rmdir指令 && rm 指令&#xff08;重…...

IP转地理位置:探讨技术与应用

IP地址是互联网上设备的唯一标识符&#xff0c;而将IP地址转换为地理位置信息是网络管理、安全监控和市场定位等领域中的一项重要任务。本文将深入探讨IP转地理位置的技术原理和各种应用场景。 IP地址与地理位置 IP地址&#xff08;Internet Protocol Address&#xff09;是一…...

关于埋点上报

一、埋点上报结构包含哪些&#xff1f; 埋点上报结构一般包含以下信息&#xff1a; 事件名称&#xff1a;标识上报的是哪个事件&#xff0c;例如“注册成功”或“点击按钮”等。事件发生时间&#xff1a;记录事件发生的时间戳。用户ID&#xff1a;标识事件所属的用户。设备信息…...

最新博客园图片上传接口,模拟实现图片上传

简单看了一下博客园的图片上传接口&#xff0c;可以拿来做图床工具&#xff0c;仅供参考学习&#xff0c;请勿滥用。 1、实例代码 #!/usr/bin/python # -*- coding: UTF-8 -*- """ author: Roc-xb """import requestsurl "https://uplo…...

ROS2 从头开始:第 08/8回 - 使用 ROS2 生命周期节点简化机器人软件组件管理

一、说明 欢迎来到我在 ROS2 上的系列的第八部分。对于那些可能不熟悉该系列的人,我已经涵盖了一系列主题,包括 ROS2 简介、如何创建发布者和订阅者、自定义消息和服务创建、...

Vue组件库Element

目录 Vue组件库ElementElement简介Element快速入门环境配置Element常用组件Table表格Table表格演示Table表格属性详解 Pagination分页Pagination分页演示Pagination分页属性详解Pagination分页事件详解 Dialog对话框Dialog对话框组件演示Dialog对话框属性详解 Form表单Form表单…...

broadcast自动扩展

broadcast&#xff1a; 1、能够进行维度扩展&#xff0c;是自动的2、在扩展的时候不需要拷贝数据要点&#xff1a; - 从最小的维度开始匹配&#xff0c;如果前面没有维度了&#xff0c;在前面插入一个新的维度。- 插入的新维度size是1&#xff0c;再将其扩展为与目标相同大小si…...

【Pm4py第七讲】关于visualization

本节用于介绍pm4py中的可视化函数&#xff0c;包括可视化bpmn、petri、性能图谱、变迁系统等。 1.函数概述 本次主要介绍Pm4py中一些常见的可视化函数&#xff0c;总览如下表&#xff1a; 函数名说明view_alignments(log, aligned_traces[, format])可视化对齐方法 view_bpmn(…...

通过 BigQuery 中的 11 个新链增强 Google Cloud 的区块链数据服务

2018 年初&#xff0c;Google Cloud 与社区合作&#xff0c;通过BigQuery 公共数据集实现区块链数据民主化&#xff1b;2019 年&#xff0c;又扩展了六个数据集&#xff1b;今天&#xff0c;我们在 BigQuery 公共数据集中添加了 11 个最受欢迎的区块链预览版。我们也在对该程序…...

C++笔记之文档术语——将可调用对象作为函数参数

C笔记之文档术语——将可调用对象作为函数参数 相关博文&#xff1a;C笔记之函数对象functors与可调用对象 文章目录 C笔记之文档术语——将可调用对象作为函数参数1.在函数参数中传递可调用对象2.‘在参数中传入可调用对象’和‘将可调用对象作为函数参数’哪个描述更加专业…...

【Android知识笔记】FrameWork中的设计模式

一、FrameWork中有哪些设计巧妙之处 例如: Binder调用,模糊进程边界: 屏蔽跨进程IPC通信的细节,让开发者把精力放在业务上面,无需关心进程之间的通信。Bitmap大图传输,高性能: 只传递Binder句柄,到目标进程后做内存映射,不用做大量数据拷贝,速度非常快。Zygote创建进…...

机器学习西瓜书+南瓜书吃瓜教程第三章学习笔记

本次学习为周老师的机器学习西瓜书谢老师南瓜书Datawhale视频 视频地址 下面为本人的学习笔记&#xff0c;最近很忙还没学多少&#xff0c;之后补&#xff01;&#xff01;&#xff01; u1s1&#xff0c;边看视频边自己手推一遍真的清楚很多&#xff0c;强烈推荐自己手推虽然花…...

JUnit5单元测试提示“Not tests were found”错误

JUnit5单元测试提示“Not tests were found”错误&#xff0c;如下图所示&#xff1a; 或者 问题解析&#xff1a; 1&#xff09;使用Test注解时&#xff0c;不能有返回值&#xff1b; 2&#xff09;使用Test注解时&#xff0c;不能使用private关键字&#xff1b; 存在以上情…...

C++ -- IO流

目录 C语言的输入与输出 CIO流 C标准IO流 C文件IO流 文件常见的打开方式如下 以二进制的形式操作文件 以文本的形式操作文件 读写结构体 stringstream的简单介绍 C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输…...

uniapp:如何修改组件默认样式

日历组件默认样式如下图&#xff0c;但是我不想要右上角的红点&#xff0c;并且日期下面的数字要加红色背景&#xff0c;变成圆形&#xff0c;还是先用元素检查找到元素的类名&#xff0c;然后通过/deep/来覆盖样式&#xff0c;需要注意的是&#xff0c;lang要scss或者less&…...

Lombok @Accessors(chain = true) 导致 FastJson parsObject()对父类属性失效

我们在项目中经常会用到lombok工具对POJO类进行简化,但不可避免的存在父类和子类的设计,并且会对父类和子类进行序列化和反序列化,今天遇到了一个问题,序列化的json字符串转化为子类对象时无法获取到父类属性值,对象中所有父类属性均为空值或默认值,很是奇怪,代码如下: 父类:P…...

深入解析CC Switch架构:构建AI开发工具统一管理引擎

深入解析CC Switch架构&#xff1a;构建AI开发工具统一管理引擎 【免费下载链接】cc-switch A cross-platform desktop All-in-One assistant tool for Claude Code, Codex, OpenCode, openclaw & Gemini CLI. 项目地址: https://gitcode.com/GitHub_Trending/cc/cc-swit…...

告别MinGW!用WSL2+Clion打造Win10下最顺滑的C/C++开发环境(2023最新版)

告别MinGW&#xff01;用WSL2Clion打造Win10下最顺滑的C/C开发环境&#xff08;2023最新版&#xff09; 在Windows平台上进行C/C开发&#xff0c;开发者们长期被MinGW的性能瓶颈所困扰。编译速度慢、调试体验差、跨平台兼容性问题频发&#xff0c;这些问题严重影响了开发效率。…...

从嵌入式到云原生:手把手教你根据项目规模选对MQTT Broker(EMQX vs Mosquitto实战避坑)

从嵌入式到云原生&#xff1a;手把手教你根据项目规模选对MQTT Broker&#xff08;EMQX vs Mosquitto实战避坑&#xff09; 当你在设计一个物联网系统时&#xff0c;选择正确的MQTT Broker就像为你的房子选择合适的地基。选得太轻量级&#xff0c;系统可能无法承载未来的增长&…...

ESP32组件化开发实战:从零构建高效项目结构

1. 为什么需要组件化开发&#xff1f; 第一次接触ESP32开发时&#xff0c;我习惯把所有代码都塞进main文件夹里。结果项目稍微复杂点就乱成一锅粥&#xff0c;每次修改都要在几十个文件里翻找&#xff0c;不同功能模块互相纠缠&#xff0c;想复用某个传感器驱动都得连带着拷贝…...

基于python的一线式酒店管理系统

目录 同行可拿货,招校园代理 ,本人源头供货商功能模块设计技术实现要点扩展功能建议异常处理机制 项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 同行可拿货,招校园代理 ,本人源头供货商 功能模块设计 前台管理模块 客房预…...

Awesome-Awesome终极指南:如何快速找到任何技术领域的最佳资源

Awesome-Awesome终极指南&#xff1a;如何快速找到任何技术领域的最佳资源 【免费下载链接】awesome-awesome A curated list of awesome curated lists of many topics. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-awesome 在技术学习和开发过程中&#xff…...

传统文化与现代AI结合:Guohua Diffusion国风绘画商业应用案例

传统文化与现代AI结合&#xff1a;Guohua Diffusion国风绘画商业应用案例 1. 国风绘画生成工具概述 Guohua Diffusion是一款专为国风绘画设计的本地生成工具&#xff0c;基于原生Guohua-Diffusion模型开发。这款工具完美融合了中国传统绘画艺术与现代AI技术&#xff0c;为艺术…...

如何用StreamCap实现多平台直播内容的自动捕获与管理

如何用StreamCap实现多平台直播内容的自动捕获与管理 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/StreamCap 在数字…...

RWKV7-1.5B-g1a参数调优教程:temperature=0.1稳输出 vs 0.8活生成,效果差异实测

RWKV7-1.5B-g1a参数调优教程&#xff1a;temperature0.1稳输出 vs 0.8活生成&#xff0c;效果差异实测 1. 模型简介 rwkv7-1.5B-g1a是基于RWKV-7架构的多语言文本生成模型&#xff0c;特别适合以下场景&#xff1a; 基础问答文案续写简短总结轻量中文对话 这个1.5B参数的版…...

城通网盘限速破解:ctfileGet让下载效率提升10倍的技术革命

城通网盘限速破解&#xff1a;ctfileGet让下载效率提升10倍的技术革命 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 在数字化协作日益频繁的今天&#xff0c;网盘已成为信息传递的重要枢纽。然而城通…...