(五) ElasticSearch 数据类型和文档CRUD操作

news2025/2/12 20:14:52

1.ES数据类型

官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html#_complex_datatypes

核心数据类型(Core Data Types):

核心数据类型是 Elasticsearch 最基本和常用的数据类型,用于存储大部分数据。这些核心数据类型包括:

  • Text(文本):用于存储长文本数据,进行全文搜索和分析。
  • Keyword(关键字):用于存储精确值,用于过滤、聚合和精确匹配。
  • Numeric(数值):用于存储数值数据,包括整数、浮点数等。
  • Date(日期):用于存储日期和时间数据。由于Json没有date类型,所以es通过识别字符串是否符合format定义的格式来判断是否为date类型。
  • Boolean(布尔):用于存储布尔值。
  • Binary(二进制):用于存储二进制数据。
  • Range(范围):Range 类型用于存储数值范围、日期范围和 IP 范围等。它允许你对字段进行范围查询和范围聚合操作。

复杂数据类型(Complex Data Types):

复杂数据类型允许存储结构化的数据,如对象、数组和嵌套字段。这些复杂数据类型包括:

  • Object(对象):用于存储嵌套对象或复杂结构的数据。
  • Array(数组):用于存储多个值的列表。直接使⽤[ ]定义即可,数组中所有的值必须是同⼀种数据类型, 不⽀持混合数据类型的数组:

使用复杂数据类型可以创建更灵活和复杂的数据结构,支持嵌套查询和聚合操作。

专用数据类型(Specialized Data Types):

专用数据类型是 Elasticsearch 提供的特定用途的数据类型,用于解决特定领域的需求。这些专用数据类型包括:

  • GeoPoint(地理点):用于存储地理坐标点,支持地理空间搜索和距离计算。
  • GeoShape(地理形状):用于存储复杂的地理形状数据,如多边形、线和点。
  • IP(IP 地址):用于存储 IP 地址,支持 IP 地址范围查询和聚合操作。本质上是⼀个⻓整型字段

专用数据类型使得 Elasticsearch 可以更好地处理与地理位置和网络地址相关的数据

2.ES文档CRUD操作

新增文档

1)指定id方式新增:

PUT /my_index/_doc/1

{
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

2)不指定id方式新增:

PUT /my_index/_doc

{
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

3)指定id的方式新增,防止因为id相同误修改,可以指定操作类型:

PUT /my_index/_doc/1?op_type=create

{
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

4)开启自动创建索引:
查看auto_create_index开关状态:

GET /_cluster/settings

在这里插入图片描述
如上图所示没有auto_create_index字段,或者为false表示未开启
开启自动创建索引:

PUT _cluster/settings

{
 "persistent": {
 "action.auto_create_index": "true"
 }
}

开启自动创建索引后,会更加数据格式自动匹配映射。

查看文档

1)根据id查看

GET /my_index/_doc/1

2)查看多个

POST /my_index/_doc/mget

{
 "ids" : ["1", "2"]
}

修改文档

1)更新文档数据

POST /my_index/_doc/1/_update

{
  "doc": {
    "content": "Elasticsearch is a distributed, RESTful search and analytics platform."
  }
}

2)向_source字段,增加⼀个字段

POST my_index/_update/1

{
 "script": "ctx._source.lable = es"
}

3)向_source字段,删除⼀个字段

POST my_index/_update/1

{
 "script": "ctx._source.remove(\"lable \")"
}

4)根据条件参数,更新指定⽂档的字段

upsert 当指定的⽂档不存在时,upsert参数包含的内容将会被插⼊到索引中,作为⼀个
新⽂档;如果指定的⽂档存在,ElasticSearch引擎将会执⾏指定的更新逻辑。

POST my_index/_update/1

{
	 "script": {
		 "source": "ctx._source.lable+= params.lable",
		 "params": {
		 "lable": "good"
		 }
	 },
	 "upsert": {
		 "lable": "just so so"
		 }
}

删除文档

DELETE /my_index/_doc/1

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DataX 3.0 在Windows下基于MySQL做数据迁移示例

在 Windows 安装 Datax: Datax 官网:https://github.com/alibaba/DataX 环境要求: 1:JDK(1.8以上,推荐1.8,并配置好环境变量) 2:Python(网上推荐Python2.…

Java线程的同步机制(synchronized关键字)

线程的同步机制(synchronized ) 1.背景 例子:创建个窗口卖票,总票数为100张.使用实现Runnable接口的方式 * 1.问题:卖票过程中,出现了重票、错票 -->出现了线程的安全问题2.问题出现的原因:当某个线程操作车票的过…

罗马不是一天建成的,那为什么建了那么多罗马?

这一个罗马,那一个罗马,东一个罗马,西一个罗马,世界历史的大半部分都在跟罗马打交道。更要命的是四大文明古国还没有古代罗马。 存在感这么强,还不是四大文明古国,名字还难记,公元前居然就有共…

P19[6-7]编码器接口(硬)

编码器接口自动控制定时器时基单元中的CNT计数器进行自增或自减,(初始化后CNT=0;编码器右转,产生一个脉冲,CNT++,左转,产生一个脉冲,CNT--)。相当于外部时钟,同时控制CNT计数方向和计数时钟。每隔一段时间取CNT的值,再把CNT清零,就表示编码器的速度。 编码器测速即测频法…

总结linux查看当前用户的方法

操作环境:ubuntu 18.04系统 一、查看当前用户 1、shell终端中输入:who 当前用户为:root,使用pts的终端,后面是登陆的时间 2、shell终端中输入:whoami 当前用户为:root,很精简输出结果…

SpringBoot - spring-boot-maven-plugin插件介绍

简述 这个是SpringBoot的MAVEN插件,主要用来打包的,通常用来将项目打包成JAR或者WAR文件(生成FAT 包)。 这个插件生成的包是可执行的JAR。 Spring Boot Maven Plugin Documentation:https://docs.spring.io/spring-boo…

了解和使用 Kubernetes

文章目录 前言Kubernetes 集群安装Kubernetes 功能Kubernetes 核心概念Kubernetes 部署应用发布部署脚本发布服务使用 Ingress配置自动伸缩 Kubernetes 常用命令Kubernetes 故障排查 前言 通过 《容器集群管理工具 Docker Swarm》可以知道,在部署、调度、扩展和管理…

计算机时间到底是怎么来的?程序员必看的时间知识!

参考文章&#xff1a;https://xie.infoq.cn/article/22d762b26daee8b3f404f60a6 <title>计算机时间到底是怎么来的&#xff1f;程序员必看的时间知识&#xff01;_操作系统_Kaito_InfoQ写作社区</title><meta name"description" content"大家好&…

【阿里云OSS: Java端提供签名,vue+elementUI+axios 实现直传文件到OSS 实例】

文章目录 java代码&#xff08;包含后端上传文件、删除文件、提供签名&#xff09;前端代码postman 测试截图 java代码&#xff08;包含后端上传文件、删除文件、提供签名&#xff09; {private final static String OSS_BUCKET_NAME "test";private final static …

Day06 Python入门必知必会

文章目录 第一章 Python环境搭建1.1. 计算机基础1.1.1. 什么是编程1.1.2. 什么是进制1.1.2.1. 进制的简介1.1.2.2. 进制的分类1.1.2.3. 进制的表示1.1.2.4. 进制的转换1.1.2.5. 原反补(了解)数据的转换负数的表示补码的引入 1.2. Python的介绍1.3. Python的安装与使用1.3.1. Py…

PMP证书能直接升级项目管理专业人员能力评价(CSPM)三级吗?

2021年10月&#xff0c;中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系&#xff0c;开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会&#xff08;CAS&#xff09;组织开展的项…

【6.14 代随_57day】 回文子串、最长回文子序列

回文子串、最长回文子序列 回文子串1.方法图解步骤代码 最长回文子序列1.方法图解步骤代码 回文子串 力扣连接&#xff1a;647. 回文子串&#xff08;中等&#xff09; 1.方法 确定dp数组以及下标的含义 dp数组是要定义成一位二维dp数组。 布尔类型的dp[i][j]&#xff1a;表示…

Three.js教程:光源对物体表面影响

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 其他系列工具&#xff1a; NSDT简石数字孪生 光源对物体表面影响 实际生活中物体表面的明暗效果是会受到光照的影响&#xff0c;threejs中同样也要模拟光照Light对网格模型Mesh表面的影响。 你可以打开课件中案例源码&am…

5.2.12 IP分组的转发(三)

5.2.12 IP分组的转发&#xff08;三&#xff09; 示例&#xff1a;例&#xff1a;某网络拓扑如图所示&#xff0c;从图中我们可以看出该网络拓扑中有两个局域网&#xff0c;由两台路由器&#xff0c;其中路由器R1有两个以太网口&#xff0c;分别是E1和E2连接了两个局域网&…

这是我见过最通俗易懂的装饰者模式讲解!

关注“Java架构栈”微信公众号&#xff0c;回复暗号【Java面试题】即可获取大厂面试题 前言 本文主要讲述装饰者模式&#xff0c;文中使用通俗易懂的案例&#xff0c;使你更好的学习本章知识点并理解原理&#xff0c;做到有道无术。 什么是装饰者模式 装饰者模式是23种设计模式…

jmeter如何进行http压力测试

目录 前言&#xff1a; 1、添加线程组&#xff1a; 2、添加采样器&#xff1a; 3、添加监视器 压力测试知识说明 前言&#xff1a; JMeter是一个基于Java的开源压力测试工具&#xff0c;可用于评估Web应用程序的性能&#xff0c;包括HTTP、HTTPS、FTP、SOAP、Restful、JD…

试试前端自动化测试(基础篇)

众所周知的原因&#xff0c;前端作为一种特殊的 GUI 软件&#xff0c;做自动化测试困难重重。在快速迭代&#xff0c;UI 变动大的业务中&#xff0c;自动化测试想要落地更是男上加男 &#x1f436;。 近期的学习过程中&#xff0c;翻阅了众多前端自动化测试相关的文章&#xf…

JAVA中的拦截器、过滤器

JAVA变成拦截器、过滤器 一、拦截器1、简介说明2、源码及方法说明3、拦截器自定义应用 二、过滤器1、简介说明2、源码及方法说明3、过滤器的自定义应用 三、Springboot中的WebMvcConfigurer1、简介2、主要方法3、添加拦截器 四、区别1、原理2、触发3、其他 一、拦截器 1、简介…

Scala学习笔记

累了&#xff0c;基础配置不想写了&#xff0c;直接抄了→Scala的环境搭建 这里需要注意的是&#xff0c;创建新项目时&#xff0c;不要用默认的Class类&#xff0c;用Object&#xff0c;原因看→scala中的object为什么可以直接运行 一、Scala简介 1.1 图解Scala和Java的关系 1…

HQChart实战教程63-自定义手机端K线tooltip显示数据

HQChart实战教程63-自定义手机端K线tooltip显示数据 手机端K线tooltip步骤1. 配置手机端tooltip2. 替换k线tooltip格式化输出函数2. 格式化输出函数说明HQChart插件源码地址完整的demo源码手机端K线tooltip hqchart手机端内置一个tooltip,显示手势所在K线的信息。默认显示 日期…