首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2023年11月 Java教学课程 209-ElasticSearch(脚本操作)

【愚公系列】2023年11月 Java教学课程 209-ElasticSearch(脚本操作)

作者头像
愚公搬代码
发布于 2025-06-02 07:18:07
发布于 2025-06-02 07:18:07
10300
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行
🚀前言

🚀一、ElasticSearch的脚本操作

🔎1.RESTful风格介绍

REST(Representational State Transfer)是一种架构风格,同时也是一种设计原则。RESTful API指符合REST设计原则的API接口。

RESTful风格的API设计需要遵循以下几个原则:

  1. 资源:API的基本设计单位是资源。每个资源都有一个唯一的标识符(URI),客户端通过该URI访问资源。URI应该具有清晰的结构和语义,通常使用名词来表示资源。
  2. 动作:API对资源的操作应该通过HTTP中的标准方法来完成,包括GET、POST、PUT和DELETE。GET方法用于读取资源,POST方法用于创建资源,PUT方法用于更新资源,DELETE方法用于删除资源。
  3. 表示:API应该支持多种数据格式,如JSONXML等。客户端通过Accept和Content-Type头指定期望的数据格式。
  4. 连接:API应该使用标准的URL和HTTP协议。API的URI和HTTP标准方法应该尽可能清晰和简单。API应该使用链接来表示资源之间的关系,例如使用HATEOAS原则。
  5. 状态:API应该是无状态的,即不应该在服务器端保存客户端的状态。客户端应该在每个请求中提供必要的信息,服务器端则根据这些信息来处理请求。

通过遵循RESTful风格的API设计原则,可以使API的设计更加清晰、易于理解和使用。同时,还可以提高API的可扩展性、可维护性和互操作性,使得API更加适用于不同的应用场景。

🔎2.操作索引

PUT

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://ip:端口/索引名称

查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET http://ip:端口/索引名称  # 查询单个索引信息
GET http://ip:端口/索引名称1,索引名称2...  # 查询多个索引信息
GET http://ip:端口/_all  # 查询所有索引信息

•删除索引

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE http://ip:端口/索引名称

•关闭、打开索引

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST http://ip:端口/索引名称/_close  
POST http://ip:端口/索引名称/_open 

🔎3.ES数据类型

在ES中,简单数据类型包括以下几种:

  1. 字符串型(text和keyword):用于存储文本数据,text类型支持全文搜索,而keyword类型则不支持全文搜索。
  2. 数值型:包括整数(integer)、长整数(long)、短整数(short)、字节(byte)、浮点数(float)、双精度浮点数(double)等。
  3. 日期型(date):用于存储日期和时间值,包括年、月、日、小时、分钟、秒等。
  4. 布尔型(boolean):用于表示真/假值。
  5. 二进制型(binary):用于存储二进制数据,如图像、视频、音频等。

上面是ES中常用的简单数据类型,它们可以用来存储大部分的数据。同时,ES还支持其他数据类型,如空间型(geo_point和geo_shape)、数组型(array)、对象型(object)等,用于处理复杂的数据结构

🔎4.操作映射

ElasticSearch的CRUD操作指的是使用ElasticSearch的API实现对索引数据进行创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)的操作。

  1. 创建(Create)
    • PUT /{index}/{type}/{id}: 创建一个新的文档,如果指定的ID已经存在,则会更新该文档。
    • POST /{index}/{type}/{id}: 创建一个新的文档,如果未指定ID,则ElasticSearch会生成一个唯一的ID。
  2. 读取(Retrieve)
    • GET /{index}/{type}/{id}: 通过指定的ID获取一个文档。
    • GET /{index}/{type}/_search: 通过查询参数搜索匹配的文档。
  3. 更新(Update)
    • POST /{index}/{type}/{id}/_update: 更新指定ID的文档。
  4. 删除(Delete)
    • DELETE /{index}/{type}/{id}: 删除指定ID的文档。

1、创建索引和文档

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PUT /my_index
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "age": {
        "type": "integer"
      },
      "email": {
        "type": "keyword"
      }
    }
  }
}

GET person1/_mapping

该请求将创建一个名为"my_index"的索引,其中包含三个字段(“name”、“age"和"email”)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PUT /my_index/_mapping
{
  "properties": {
      "name": {
        "type": "text"
      },
      "age": {
        "type": "integer"
      }
    }
}

修改映射

🔎5.操作文档

创建文档的方法是使用HTTP POST方法向索引中添加数据,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /my_index/_doc
{
  "name": "John Doe",
  "age": 30,
  "email": "johndoe@example.com"
}

该请求将在"my_index"索引中创建一条文档,包含三个字段(“name”、“age"和"email”)。

  1. 读取文档

在Elasticsearch中,可以使用HTTP GET方法读取文档,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET /my_index/_doc/1
# 查询所有文档
GET /my_index/_search

该请求将从"my_index"索引中读取ID为1的文档。如果文档存在,Elasticsearch将返回文档内容,如果文档不存在,则返回404错误。

  1. 更新文档

在Elasticsearch中,可以使用HTTP POST方法更新文档,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /my_index/_update/1
{
  "doc": {
    "name": "Jane Doe",
    "age": 32
  }
}

该请求将更新"my_index"索引中ID为1的文档,将"name"字段的值修改为"Jane Doe","age"字段的值修改为32。

  1. 删除文档

在Elasticsearch中,可以使用HTTP DELETE方法删除文档,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE /my_index/_doc/1

该请求将从"my_index"索引中删除ID为1的文档。如果文档不存在,Elasticsearch将返回404错误。


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验