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

ES通过API操作索引库

1. 导入restClient依赖

  <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency>

2. 了解ES核心客户端API

核心区别对比

特性RestHighLevelClientRestClient
定位高级客户端(封装常用操作,推荐使用)底层HTTP客户端(更灵活,更复杂)
API风格面向对象(如 IndexRequestSearchRequest基于HTTP请求构建(如 RequestResponse
维护状态官方已停止维护(ES 7.15+)仍维护(但推荐迁移到新客户端)
依赖关系基于 RestClient 实现是 RestHighLevelClient 的底层依赖
适用场景快速开发标准功能需要自定义请求或访问未封装API

3. 将RestHighLevelClient注册成Bean

package com.example.demo.config;import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ElasticSearchConfig {public static final String HOST = "127.0.0.1"; // es地址public static final int PORT = 9200; // es端口/*** 创建RestClient对象* @return*/@Beanpublic RestHighLevelClient restClient() {return new RestHighLevelClient(RestClient.builder(new HttpHost(HOST, PORT)));}
}

4. 创建索引库

创建包和类用于保存索引结构:constants.HotelConstants

package com.example.demo.constants;public class HotelConstants {public static final String MAPPER_TEMPLATE_USER = "{\n" +"  \"mappings\": {\n" +"    \"properties\": {\n" +"      \"id\": {\n" +"        \"type\": \"keyword\",  \n" +"        \"doc_values\": true  \n" +"      },\n" +"      \"username\": {\n" +"        \"type\": \"text\",     \n" +"        \"analyzer\": \"ik_max_word\", \n" +"        \"fields\": {\n" +"          \"keyword\": {\n" +"            \"type\": \"keyword\"  \n" +"          }\n" +"        },\n" +"        \"copy_to\": \"combined_search\"  \n" +"      },\n" +"      \"password\": {\n" +"        \"type\": \"keyword\",  \n" +"        \"index\": false      \n" +"      },\n" +"      \"phone\": {\n" +"        \"type\": \"keyword\",  \n" +"        \"ignore_above\": 20  \n" +"      },\n" +"      \"create_time\": {\n" +"        \"type\": \"date\",\n" +"        \"format\": \"yyyy-MM-dd HH:mm:ss||epoch_millis\"  \n" +"      },\n" +"      \"update_time\": {\n" +"        \"type\": \"date\",\n" +"        \"format\": \"yyyy-MM-dd HH:mm:ss||epoch_millis\"\n" +"      },\n" +"      \"status\": {\n" +"        \"type\": \"integer\", \n" +"        \"null_value\": 1     \n" +"      },\n" +"      \"balance\": {\n" +"        \"type\": \"integer\",  \n" +"        \"null_value\": 0     \n" +"      },\n" +"      \"combined_search\": {  \n" +"        \"type\": \"text\",\n" +"        \"analyzer\": \"ik_smart\"\n" +"      }\n" +"    }\n" +"  },\n" +"  \"settings\": {\n" +"    \"number_of_shards\": 3,    \n" +"    \"number_of_replicas\": 1,  \n" +"    \"analysis\": {             \n" +"      \"analyzer\": {\n" +"        \"ik_smart\": {         \n" +"          \"type\": \"custom\",\n" +"          \"tokenizer\": \"ik_max_word\"\n" +"        }\n" +"      }\n" +"    }\n" +"  }\n" +"}";
}

 /*** 创建索引库*/@Testpublic void createIndex() throws IOException {// 创建请求,指定索引库名称CreateIndexRequest request = new CreateIndexRequest("user");//执行与数据库相对于的映射JSONCreateIndexRequest source = request.source(HotelConstants.MAPPER_TEMPLATE_USER, XContentType.JSON);// 发送请求//RequestOptions.DEFAULT:默认请求client.indices().create(source, RequestOptions.DEFAULT);}

执行前先确定是否删除user索引库,客户端查询一下如果为空就是删除了

#
GET /user#
DELETE /user

运行测试方法后再次查询


5. 判断索引库是否存在

    /*** 判断索引库是否存在* @throws IOException*/@Testvoid testIndexExists() throws IOException {// 创建请求,指定索引库名称GetIndexRequest request = new GetIndexRequest("user");// 发送请求,判断索引库是否存在boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);// 打印结果,true表示存在,false表示不存在System.out.println(exists);}

6. 删除索引库

    /*** 删除索引库* @throws IOException*/@Testvoid testDeleteIndex() throws IOException {// 创建请求,指定索引库名称DeleteIndexRequest request = new DeleteIndexRequest("user");// 发送请求client.indices().delete(request, RequestOptions.DEFAULT);}

相关文章:

ES通过API操作索引库

1. 导入restClient依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency> 2. 了解ES核心客户端API 核心区别…...

MySQL:存储函数和存储过程

系列文章目录 1.MySQL编程基础 2.程序控制流语句 3.存储过程 4.游标 5.嵌入式SQL 文章目录 系列文章目录前言一、程序控制流语句&#xff1a;二、存储函数&#xff1a; 1.存储函数的特点&#xff1a;2.存储函数的定义&#xff1a;3.调用存储函数 三、存储过程&#xff1a;…...

visual studio安装字体

以下是在 Windows 系统中将 Visual Studio 字体更换为 JetBrains 字体&#xff08;如 JetBrains Mono&#xff09;的完整指南&#xff0c;涵盖从下载安装到高级优化的全流程&#xff1a; 一、下载并安装 JetBrains 字体 获取字体文件 访问 JetBrains Mono 官方下载页面&#x…...

网络安全·第四天·扫描工具Nmap的运用

今天我们要介绍网络安全中常用的一种扫描工具Nmap&#xff0c;它被设计用来快速扫描大型网络&#xff0c;主要功能包括主机探测、端口扫描以及版本检测&#xff0c;小编将在下文详细介绍Nmap相应的命令。 Nmap的下载安装地址为&#xff1a;Nmap: the Network Mapper - Free Se…...

SSM考研助手管理系统

&#x1f345;点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 项目视频 03…...

通道注意力机制|Channel Attention Neural Network

一、通道注意力机制 论文&#xff1a;ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks 近年来&#xff0c;通道注意力机制在提高深度卷积神经网络CNN的性能方面显示出了巨大潜力。然而&#xff0c;大多数现有方法致力于开发更复杂的注意力模块…...

844. 比较含退格的字符串

给定 s 和 t 两个字符串&#xff0c;当它们分别被输入到空白的文本编辑器后&#xff0c;如果两者相等&#xff0c;返回 true 。# 代表退格字符。 注意&#xff1a;如果对空文本输入退格字符&#xff0c;文本继续为空。 示例 1&#xff1a; 输入&#xff1a;s "ab#c&quo…...

trl的安装与单GPU多GPU测试

文章目录 0 相关资料1 源码安装2 Qwen2.5-0.5B-Instruct 模型下载3 训练demo4 在多个 GPU/节点上进行训练总结 0 相关资料 https://github.com/huggingface/trl https://blog.csdn.net/weixin_42486623/article/details/134326187 TRL 是一个先进的库&#xff0c;专为训练后基…...

Java项目之基于ssm的学校小卖部收银系统(源码+文档)

项目简介 学校小卖部收银系统实现了以下功能&#xff1a; 学校小卖部收银系统的主要使用者分为&#xff1a; 管理员&#xff1b;管理员使用本系统涉到的功能主要有&#xff1a;主页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;员工管理&#xff0c;商品分类管理&am…...

ES DSL 常用修改语句

字段值替换修改 修改sql update zyzkwjj set dhreplace(dh,"WS","WSS") where dh like %WS% update zyzkwjj set dh replace(dh, WS, DZ),ztm replace(ztm, WS, DZ),zrz replace(zrz, WS, DZ) where dh like %WS% or ztm like %WS% or zrz like %WS%…...

数据结构*集合框架顺序表-ArrayList

集合框架 常见的集合框架 什么是顺序表 顺序表是一种线性表数据结构&#xff0c;它借助一组连续的存储单元来依次存储线性表中的数据元素。一般情况下采用数组存储。 在数组上完成数据的增删查改。 自定义简易版的顺序表 代码展示&#xff1a; public interface IArray…...

(二)Graspnet在mujoco的仿真复现(操作记录)

目录 《复现的项目来源》 一、创建虚拟环境 二、下载manipulator_grasp项目 三、配置环境 1、基于graspnet-baseline项目进行开发 &#xff08;1&#xff09;下载 graspnet-baseline项目 &#xff08;2&#xff09;修改graspnet-baseline的requirements.txt&#xff0c;…...

黑马商城项目(一)MybatisPlus

一、快速入门 入门案例&#xff1a; 常见注解&#xff1a; 常见配置&#xff1a; 条件构造器(wrapper)&#xff1a; 案例&#xff1a; Testvoid testUpdateByWrapper(){List<Long> ids List.of(1L,2L,3L);UpdateWrapper<User> userUpdateWrapper new UpdateWrapp…...

Linux系统编程 day2

系统调用 由操作系统实现并提供给外部应用程序的编程接口(API)。是应用程序同系统之间数据交换的桥梁。 文件IO 函数 open/close函数 头文件 #include<fcntl.h> #include<unistd.h>int open(const char*pathname , int flags) int open(const char*pathname , …...

告别繁琐,拥抱简洁:初识 Pytest 与环境搭建 (Pytest系列之一)

在 Python 自动化测试领域&#xff0c;Pytest以其简洁、灵活和强大的特性&#xff0c;越来越受到广大测试工程师和开发者的青睐。如果你还在为繁琐的测试框架而苦恼&#xff0c;或者希望提升你的 Python 测试效率&#xff0c;那么 Pytest 绝对值得你深入了解和使用。 本文将带…...

浏览器运行Pytorch无法启用显卡

注意 我启用高性能之后&#xff0c;结果蓝屏了。无语Thinkpad T14p&#xff01;&#xff01;&#xff01; 仅供参考。 问题与方案 在浏览器里面用Jupyter编写python程序&#xff0c;进行网络模型训练。 里面导入了PyTorch&#xff0c;但是并没有启用显卡执行&#xff1a; 也…...

天元证券|8家汽车零部件上市公司一季度业绩预喜

近日&#xff0c;中国汽车工业协会发布的数据显示&#xff0c;今年一季度&#xff0c;我国汽车产量为756.1万辆&#xff0c;同比增长14.5%&#xff1b;汽车销量为747万辆&#xff0c;同比增长11.2%。 受益于前三个月汽车产、销量同比双增&#xff0c;上游产业链公司交出了一份可…...

C语言学习之sizeof函数和strlen函数

经过我们之前的学习&#xff0c;已经接触过很多次sizeof函数和strlen函数了&#xff0c;应用他们来求解数组大小等等。但是实际应用中两者的差别还是很大的&#xff0c;接下来我们就来了解一下吧。 sizeof函数 sizeof函数计算的是变量所占内存空间的大小的&#xff0c;单位是字…...

从 “经验养生” 到 “数据养生”:智慧养老如何终结 “伪科学”?

在养老养生领域&#xff0c;长期以来 “经验养生” 占据主导地位&#xff0c;各种未经科学验证的说法和做法流传甚广&#xff0c;其中不乏 “伪科学” 内容&#xff0c;给老年人的健康和生活带来诸多误导。 随着智慧养老的兴起&#xff0c;“数据养生” 模式逐渐崭露头角&…...

什么是跨域问题以及其解决方案

一、什么是跨域&#xff1f; 1.1. 什么是同源策略&#xff1f;1.2. 同源策略限制以下几种行为 二、常见的跨域场景三、9种跨域解决方案 1. JSONP跨域 1.1. 原生JS实现1.2. jquery Ajax实现1.3. Vue axios实现 2. CORS 跨域资源共享 &#xff08;前端不需要做任何改变&#xff0…...

Go之Slice和数组:深入理解底层设计与最佳实践

在Go语言中&#xff0c;数组&#xff08;Array&#xff09;和切片&#xff08;Slice&#xff09;是两种看似相似却本质不同的数据结构。本文将深入剖析它们的底层实现机制&#xff0c;并结合实际代码示例&#xff0c;帮助开发者掌握核心差异和使用场景。 一、基础概念&#xff…...

快速部署大模型 Openwebui + Ollama + deepSeek-R1模型

背景 本文主要快速部署一个带有web可交互界面的大模型的应用&#xff0c;主要用于开发测试节点&#xff0c;其中涉及到的三个组件为 open-webui Ollama deepSeek开放平台 首先 Ollama 是一个开源的本地化大模型部署工具,提供与OpenAI兼容的Api接口&#xff0c;可以快速的运…...

RF connect SDK 修改蓝牙address的方法

目录 概述 1 静态设置蓝牙地址&#xff08;编译时配置&#xff09; 1.1 通过 prj.conf 文件设置 1.2 通过 overlay 文件设置 2 动态修改蓝牙地址&#xff08;运行时修改&#xff09; 2.1 使用 bt_addr_le_t 结构 2.2 使用 bt_set_id_addr&#xff08;适用于 Public Add…...

MuJoCo(Multi-Joint Dynamics with Contact)机器人仿真器存在的问题

MuJoCo物理引擎计算接触力的核心思路&#xff0c;是通过数学优化的方式同时满足多个物理约束&#xff0c;而不是简单地为每个碰撞点单独计算作用力。它的工作流程可以理解为几个阶段的紧密配合。首先&#xff0c;仿真器会快速检测所有可能发生接触的物体表面&#xff0c;筛选出…...

IDEA远程Debug调试

最近开发一个功能&#xff0c;因为环境问题&#xff0c;本地无法正常将多个微服务都启动成功。 另外接手了一个新活&#xff0c; 逻辑比较复杂&#xff0c;需要去研究一下测试一下原来的功能逻辑。方便找到新任务功能点的切入点。这才了解到Idea远程debug调试的功能。 本文章…...

爱普生有源晶振SG2016VHN在网络服务器中的应用

在数字化浪潮席卷全球的当下&#xff0c;网络服务器作为数据存储、处理与传输的核心枢纽&#xff0c;其性能的稳定与高效直接关系到整个网络生态的正常运转。从企业内部的数据管理&#xff0c;到互联网服务提供商的大规模数据运算&#xff0c;网络服务器需要应对海量数据的高速…...

【差分隐私相关概念】瑞丽差分隐私(RDP)命题2

分步解析与答案 1. c-稳定变换的定义 c-稳定变换是一种将群体数据集&#xff08;如数据库集合&#xff09;的相邻性映射到个体数据集&#xff08;如单条记录变化&#xff09;的变换。具体来说&#xff0c;若变换 g : D ′ → D g: \mathcal{D} \to \mathcal{D} g:D′→D 是 …...

大前端基础学习

一、cs架构和bs架构 c&#xff1a;客户端&#xff0c; b&#xff1a;浏览器&#xff08;无需安装&#xff0c;无需更新&#xff0c;可跨平台&#xff09;√ s&#xff1a;server服务端&#xff0c;帮我们保 存信息&#xff0c;传递信息 二、 altshift向下键向下复制一行 …...

Spring Batch 专题系列(四):配置与调度 Spring Batch 作业

1. 引言 在上一篇文章中,我们详细探讨了 Spring Batch 的核心组件(Job、Step、Chunk、ItemReader、ItemProcessor、ItemWriter),并通过示例展示了它们的协作方式。掌握了这些组件后,接下来需要了解如何灵活配置 Spring Batch 作业,并通过调度机制控制作业的执行时机。本…...

Android 项目配置文件解释

Android 项目配置文件解释 目录 Android 项目配置文件解释1. `plugins` 块2. `android` 块3. `dependencies` 块为什么需要 JDK 和 Kotlin1. plugins 块 plugins {id com.android.applicationid org.jetbrains.kotlin.android }id com.android.application:应用 Android 应用…...

uniapp 自定义tabbar

v3 写法 <template><view class"" v-if"Data.imgurl"><view class"tabbars" ref"tabbars" id"tabbars"><view class"flex jsa"><view class"tabbarc_li" click"go(/p…...

C++高级2 智能指针

智能指针介绍 裸指针 int * p new int(10); *p 30; delete p; 必须要手动释放 智能指针 保证能做到资源的自动释放&#xff0c;利用栈上的对象出作用域自动析构的特征&#xff0c;来做到资源的自动释放的 实现一个简单的智能指针 class Cptr { public:Cptr(T* ptr …...

【FPGA】——DDS信号发生器设计

目录 一 、IP核的使用 &#xff08;1)RAM IP核 (2)FIFO IP核 二、DDS信号发生器设计 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;仿真波形 一 、IP核的使用 IP核&#xff1a;ASIC或FPGA中预先设计好具有某种功能的电路模块&#xff0c;参数可修改&#xf…...

mysql按条件三表并联查询

下面为你呈现一个 MySQL 按条件三表并联查询的示例。假定有三个表&#xff1a;students、courses 和 enrollments&#xff0c;它们的结构和关联如下&#xff1a; students 表&#xff1a;包含学生的基本信息&#xff0c;有 student_id 和 student_name 等字段。courses 表&…...

centos 7 docker创建的postgres数据库状态检查

一 、打开finalshell 连接主机 二、检查docker状态,以下信息表示数据库准备好连接了 注意:当finalshell可以访问主机,但没有准备信息时,重启centos系统试试 docker logs postgres 三、如果是传统安装 基于 systemd 的系统(如 CentOS 7 及以上、Ubuntu 16.04 及以…...

基于EasyX库开发的球球大作战游戏

目录 球球大作战 一、开发环境 二、流程图预览 三、代码逻辑 1、初始化时间 2、设置开始界面大小 3、设置开始界面 4、让玩家选择速度 5、设置玩家小球、人机小球、食物的属性 6、一次性把图绘制到界面里 7、进入死循环 8、移动玩家小球 9、移动人机 10、食物刷新…...

ES和MySQL概念对比

基本概念 ES和MySQL都属于数据库&#xff0c;不过各有各的特性&#xff0c;大致使用方法与MySQL类似并无区别。 MySQL&#xff1a;擅长事务持有ACID的特性&#xff0c;确保数据的一致性和安全。 ES&#xff1a;持有倒排索引&#xff0c;适合海量数据搜索和分析。 ES和MySQL如何…...

Kotlin 与 Jetpack Compose 参数设计完全指南

作为 Kotlin 和 Jetpack Compose 开发者&#xff0c;合理的参数设计能显著提升代码的可读性和易用性。本文将系统整理各类参数规则&#xff0c;帮助您编写更优雅的 API。 一、基础参数规则 1. 方法参数 // 基础定义 fun 方法名(必需参数: 类型, 可选参数: 类型 默认值): 返…...

dea如何使用git

在 IntelliJ IDEA 中使用 Git 的详细步骤如下&#xff0c;分为配置、基础操作和高级功能&#xff0c;适合新手快速上手&#xff1a; ​一、配置 Git​ ​安装 Git​ 下载并安装 Git&#xff0c;安装时勾选“Add to PATH”。验证安装&#xff1a;终端输入 git --version 显示版本…...

git -- 版本控制介绍(分布式系统),git介绍(对待数据的方式,本地执行,保证完整性,只添加数据,git文件/项目的三种状态,基本的工作流程)

目录 版本控制 介绍 分布式版本控制系统 git 介绍 与多个远程仓库协作 对待数据的方式 本地执行操作 保证完整性 只添加数据 三种状态 工作区 暂存区 Git 目录 基本的git工作流程 版本控制 介绍 一种记录一个或多个文件内容变化的系统&#xff0c;它可以让你在未来…...

嵌入式软件OTA升级,有哪几种Flash划分方式?

第一次接触嵌入式软件OTA升级的时候&#xff0c;我整个人也是懵的。Flash划分&#xff1f;什么鬼&#xff1f;不是直接把新程序烧进去就完事了吗&#xff1f; 结果一上手才发现&#xff0c;这玩意没那么简单&#xff0c;尤其是Flash怎么分&#xff0c;如果Flash划分没弄好&…...

游戏引擎学习第226天

引言&#xff0c;计划 我们目前的目标是开始构建“元游戏”结构。所谓元游戏&#xff0c;指的是不直接属于核心玩法本身&#xff0c;但又是游戏体验不可或缺的一部分&#xff0c;比如主菜单、标题画面、存档选择、选项设置、过场动画等。我们正在慢慢将这些系统结构搭建起来。…...

通过python实现bilibili缓存视频转为mp4格式

需要提前下好ffmpeg import os import fnmatch import subprocess Bilibili缓存的视频&#xff0c;*280.m4s结尾的是音频文件&#xff0c;*050.m4s结尾的是视频&#xff0c;删除16进制下前9个0&#xff0c;即为正常音/视频 使用os.walk模块&#xff0c;遍历每一个目录&#xf…...

Windows 图形显示驱动开发-WDDM 1.2功能—无显示器系统支持

一、架构设计与启动流程 1.1无显示器系统启动与全流程 graph TDA[UEFI固件] -->|FADT.VGA_NOT_PRESENT1| B[Windows Boot Manager]B -->|加载winload.efi| C[内核初始化]C -->|检测显示设备| D{存在GPU?}D -->|是| E[加载WDDM驱动]D -->|否| F[激活MSBDD虚拟…...

低代码 Web 组态

低代码配置式 Web 组态是一种用于创建 Web 应用程序界面的技术&#xff0c;它允许用户通过图形化界面和少量的代码或无需编写大量代码来配置和定制 Web 页面的布局、外观和交互功能。 一、特点 1、低代码或无代码开发&#xff1a;大大降低了开发门槛&#xff0c;无需专业的编程…...

解决7穴连接器的信号完整性问题

在汽车发动机的系统设计中&#xff0c;信号传输是不可或缺的。在信号传输中起着重要作用的一个关键组件是 7 穴连接器&#xff0c;它提供许多重要功能。 但是&#xff0c;这些连接器可能会遇到一些制造商需要解决的问题&#xff0c;知道如何解决 7 腔连接器中的信号完整性问题…...

GDScript快速入门(适合有其它编程语言基础)

GDScript快速入门&#xff08;适合有其它编程语言基础&#xff09; 从零开始学 GDScript Godot 是一款开源、跨平台的游戏引擎&#xff0c;因其轻量、易用和强大的功能而受到广大开发者的喜爱。在 Godot 中&#xff0c;GDScript 是其专为游戏开发设计的脚本语言&#xff0c;具…...

WEB安全--蓝队日志--RCE数据包分析

一、分析数据包内容 攻击者通过URL请求POST传参的方式试图绕过IPS测试RCE漏洞的利用 URL请求中的内容进行urlcode解码后是这样的&#xff1a; http://资产IP/hello.world?-d allow_url_include1 -d auto_prepend_filephp://input 1. -d allow_url_include1&#xff1a; 使…...

springboot项目添加定时任务,用sftp推送zip包到目标服务器

用sftp推送zip包到目标服务器 任务类里面&#xff0c;主要功能是&#xff0c;定时采集三张表的数据&#xff0c;并把数据转换成csv&#xff0c;三份csv压缩成一个加密的zip包&#xff0c;通过sftp推送到指定的目录下 配置类 Data Configuration ConfigurationProperties(pre…...

Mobaxterm 突破 14个 session 限制

mobaxterm 可以说非常好用&#xff0c;但是免费版对会话有限制&#xff0c;对于有很多虚拟机会话需要存储的我来说确实太少了。 当Xterm会话数量到14个时&#xff0c;发现新增的会话没有保存下来&#xff0c;在左侧菜单无法新增保存会话session。 超过限制时&#xff0c;提示…...