Elasticsearch - SpringBoot 索引与文档相关demo

2024-09-03 16:04

本文主要是介绍Elasticsearch - SpringBoot 索引与文档相关demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
    • Elasticsearch - SpringBoot 索引与文档相关demo
      • 1. _cat/* 相关API
      • 2. 查看所有索引
      • 3. 创建索引
      • 4. 检索索引
      • 5. 删除索引
      • 6. 新增文档
      • 7. 更新文档
      • 8. 根据索引中的文档 ID 查询文档
      • 9. 删除文档

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


Elasticsearch - SpringBoot 索引与文档相关demo

1. _cat/* 相关API

示例:

GET /_cat/indices/yzy-*-20240830?v&h=index,pri.store.size&s=ss:desc&bytes=gb

在这里插入图片描述
含义:

GET /_cat/indices/yzy-*-20240830:请求 _cat/indices API,获取匹配模式为 yzy-*-20240830 的索引信息。
v:表示显示表头(列名)。
h=index,pri.store.size:指定要显示的列,index 是索引名称,pri.store.size 是主分片的存储大小。
s=ss:desc:按存储大小(ss)降序排序。
bytes=gb:将存储大小以 GB 为单位显示。

代码示例:

    @GetMapping("/api/index_cat")public String getIndexCat()   {try {// 构建 Cat Indices 请求Request request = new Request("GET", "/_cat/indices/yzy-*-20240830?v&h=index,pri.store.size&s=ss:desc&bytes=gb");// 执行请求Response response = client.getLowLevelClient().performRequest(request);// 处理响应String responseBody = EntityUtils.toString(response.getEntity());log.info(responseBody);return responseBody;} catch (ResponseException e) {log.error("Error executing request: " + e.getMessage());} catch (IOException i){log.error("错误 ",i);}return null;}

2. 查看所有索引

代码示例:

    @GetMapping("/api/index_all")public String getAllIndex()   {try {// 创建索引请求Request request = new Request("GET", "/_cat/indices?v");// 执行请求Response response = client.getLowLevelClient().performRequest(request);String msg = EntityUtils.toString(response.getEntity());log.info(msg);return msg;} catch (ResponseException e) {log.error("Error executing request: " + e.getMessage());} catch (IOException i){log.error("错误 ",i);}return null;}

测试:
在这里插入图片描述

3. 创建索引

示例:

     PUT /yzy_test{"settings": {"number_of_shards": 1,"number_of_replicas": 1},"mappings": {"properties": {"field1": { "type": "text" },"field2": { "type": "keyword" }}}}

代码:

    @GetMapping("/api/index_create")public String getIndexCreate()   {try {// 创建索引请求Request request = new Request("PUT", "/yzy_test");String jsonString = "{ \"settings\": { \"number_of_shards\": 1, \"number_of_replicas\": 1 }, " +"\"mappings\": { \"properties\": { \"field1\": { \"type\": \"text\" }, \"field2\": { \"type\": \"keyword\" } } } }";request.setJsonEntity(jsonString);// 执行请求Response response = client.getLowLevelClient().performRequest(request);String msg = EntityUtils.toString(response.getEntity());log.info(msg);return msg;} catch (ResponseException e) {log.error("Error executing request: " + e.getMessage());} catch (IOException i){log.error("错误 ",i);}return null;}

测试在这里插入图片描述
在这里插入图片描述

4. 检索索引

代码:

 @GetMapping("/api/index_get")public String getGetIndex()   {try {// 创建索引请求Request request = new Request("GET", "/yzy_test");// 执行请求Response response = client.getLowLevelClient().performRequest(request);String msg = EntityUtils.toString(response.getEntity());log.info(msg);return msg;} catch (ResponseException e) {log.error("Error executing request: " + e.getMessage());} catch (IOException i){log.error("错误 ",i);}return null;}

测试:
在这里插入图片描述

5. 删除索引

代码:

 @GetMapping("/api/index_delete")public String getDelIndex()   {try {// 创建索引请求Request request = new Request("DELETE", "/yzy_test");// 执行请求Response response = client.getLowLevelClient().performRequest(request);String msg = EntityUtils.toString(response.getEntity());log.info(msg);return msg;} catch (ResponseException e) {log.error("Error executing request: " + e.getMessage());} catch (IOException i){log.error("错误 ",i);}return null;}

测试:
在这里插入图片描述
在这里插入图片描述

6. 新增文档

代码:

    @GetMapping("/api/doc_create")public void createDocument() {try {// 创建 IndexRequest 对象,指定索引名称和文档IDIndexRequest request = new IndexRequest("yzy-app-a-20240830").id("1");// 设置文档内容String jsonString = "{" +"\"user\":\"kimchy\"," +"\"postDate\":\"2023-08-30\"," +"\"message\":\"trying out Elasticsearch\"" +"}";request.source(jsonString, XContentType.JSON);// 执行请求IndexResponse response = client.index(request, RequestOptions.DEFAULT);log.info( "Document add: " + response.getResult());} catch (IOException e) {log.error("Error creating document", e);}}

测试:
在这里插入图片描述
在这里插入图片描述

7. 更新文档

代码:

    @GetMapping("/api/doc_update")public void updateDocument() {try {// 创建 UpdateRequest 对象,指定索引名称和文档IDUpdateRequest request = new UpdateRequest("yzy-app-a-20240830", "1");// 设置更新内容String jsonString = "{" +"\"message\":\"updating document content\"" +"}";request.doc(jsonString, XContentType.JSON);// 执行请求UpdateResponse response = client.update(request, RequestOptions.DEFAULT);log.info( "Document update: " + response.getResult());} catch (IOException e) {log.error("Error updating document", e);}}

测试:
在这里插入图片描述
在这里插入图片描述

8. 根据索引中的文档 ID 查询文档

代码:

    @GetMapping("/api/doc/{index}/{id}")public String getDocumentById(@PathVariable String index, @PathVariable String id) {try {// 创建 GetRequest 对象,指定索引名称和文档IDGetRequest getRequest = new GetRequest(index, id);// 执行查询GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);// 判断文档是否存在if (getResponse.isExists()) {// 返回文档内容return getResponse.getSourceAsString();} else {return "Document not found";}} catch (Exception e) {// 错误处理e.printStackTrace();return "Error retrieving document: " + e.getMessage();}}

测试:
在这里插入图片描述

9. 删除文档

    @GetMapping("/api/doc_delete")public void deleteDocument() {try {// 创建 DeleteRequest 对象,指定索引名称和文档IDDeleteRequest request = new DeleteRequest("yzy-app-a-20240830", "1");// 执行请求DeleteResponse response = client.delete(request, RequestOptions.DEFAULT);log.info( "Document deleted: " + response.getResult());} catch (IOException e) {log.error("Error deleting document", e);}}

测试:
在这里插入图片描述
在这里插入图片描述

这篇关于Elasticsearch - SpringBoot 索引与文档相关demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133399

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(