Rest Client

ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:Elasticsearch Clients | Elastic

初始化RestClient

引入es的RestHighLevelClient依赖:

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

因为SpringBoot默认的ES版本是7.6.2,所以我们需要覆盖默认的ES版本:

<properties><java.version>1.8</java.version><elasticsearch.version>7.12.1</elasticsearch.version>
</properties>

初始化RestHighLevelClient

RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(HttpHost.create("http://192.168.150.101:9200")
));

创建索引库

  • 1)创建Request对象。因为是创建索引库的操作,因此Request是CreateIndexRequest。

  • 2)添加请求参数,其实就是DSL的JSON参数部分。因为json字符串很长,这里是定义了静态字符串常量MAPPING_TEMPLATE,让代码看起来更加优雅。

  • 3)发送请求,client.indices()方法的返回值是IndicesClient类型,封装了所有与索引库操作有关的方法。

@Test
void createHotelIndex() throws IOException {// 1.创建Request对象CreateIndexRequest request = new CreateIndexRequest("hotel");// 2.准备请求的参数:DSL语句request.source(MAPPING_TEMPLATE, XContentType.JSON);// 3.发送请求client.indices().create(request, RequestOptions.DEFAULT);
}

 删除索引库

  • 1)创建Request对象。这次是DeleteIndexRequest对象

  • 2)准备参数。这里是无参

  • 3)发送请求。改用delete方法

@Test
void testDeleteHotelIndex() throws IOException {// 1.创建Request对象DeleteIndexRequest request = new DeleteIndexRequest("hotel");// 2.发送请求client.indices().delete(request, RequestOptions.DEFAULT);
}

判断索引库是否存在 

  • 1)创建Request对象。这次是GetIndexRequest对象

  • 2)准备参数。这里是无参

  • 3)发送请求。改用exists方法

@Test
void testExistsHotelIndex() throws IOException {// 1.创建Request对象GetIndexRequest request = new GetIndexRequest("hotel");// 2.发送请求boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);// 3.输出System.err.println(exists ? "索引库已经存在!" : "索引库不存在!");
}

 总结

JavaRestClient操作elasticsearch的流程基本类似。核心是client.indices()方法来获取索引库的操作对象。

索引库操作的基本步骤:

  • 初始化RestHighLevelClient

  • 创建XxxIndexRequest。XXX是Create、Get、Delete

  • 准备DSL( Create时需要,其它是无参)

  • 发送请求。调用RestHighLevelClient#indices().xxx()方法,xxx是create、exists、delete

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

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

相关文章

Windows环境检验NodeJs安装是否成功

Windows环境检验NodeJs安装是否成功 检验方法 1、winR 打开运行窗口&#xff0c;在此窗口输入cmd命令 2、进入命令提示符窗口&#xff0c;分别输入以下命令&#xff0c;显示版本号&#xff0c;则安装成功 node -v&#xff1a;显示安装的nodejs版本npm -v&#xff1a;显示安装…

如何衡量程序运行的效率

文章目录 复杂度是什么不同算法对复杂度的影响方法一方法二 时间复杂度与代码结构的关系例 1:最大值例2:最大次数 降低时间复杂度的必要性总结 当你在大数据环境中开发代码时&#xff0c;你一定遇到过程序执行好几个小时、甚至好几天的情况&#xff0c;或者是执行过程中电脑几乎…

Lunix的奇妙冒险————权限篇

文章目录 一.什么是权限二.用户权限和类别。1.用户2.角色3.更换文件角色 三.文件的类别和对应权限1.文件的类别。2.文件属性权限1.权限说明。2.默认生成文件权限来源3.更改权限 3.文件的执行与删除 四.不同用户共同在一个目录下的权限。1.普通用户家目录2.在同一目录下文件的权…

LabVIEW的便携式车辆振动测试分析

随着计算机和软件技术的发展&#xff0c;虚拟仪器正逐渐成为机械工业测试领域的主流。在现代机械工程中&#xff0c;特别是车辆振动测试&#xff0c;传统的测试方法不仅设备繁杂、成本高昂&#xff0c;而且操作复杂。为解决这些问题&#xff0c;开发了一款基于美国国家仪器公司…

【新版Hi3559AV100 旗舰8K30 AI摄像机芯片】

新版Hi3559AV100 旗舰8K30 AI摄像机芯片 一、总体介绍 Hi3559AV100是专业的8K Ultra-HD Camera SOC&#xff0c;它提供了8K30/4K120广播级图像质量的数字视频录制&#xff0c;支持8路Sensor输入&#xff0c;支持H.265编码输出或影视级的RAW数据输出&#xff0c;并集成高性能ISP…

proE各版本安装指南

下载链接 https://pan.baidu.com/s/1BSaJxvPPGeIa4YKm7xk57g?pwd0531 1.鼠标右击【Proe5.0M280(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;选择【解压到 Proe5.0M280(64bit)】&#xff08;解压的路径中不能有中文&#xff09;。 2.打开…

HarmonyOS应用配置文件app对象内部结构,deviceConfig内部结构(FA模型)

应用配置文件概述&#xff08;FA模型&#xff09; 每个应用项目必须在项目的代码目录下加入配置文件&#xff0c;这些配置文件会向HarmonyOS的编译工具、HarmonyOS操作系统和应用市场提供描述应用的基本信息。 应用配置文件需申明以下内容&#xff1a; 应用的软件包名称&…

存算分离降本增效,StarRocks 助力聚水潭 SaaS 业务服务化升级

作者&#xff1a;聚水潭数据研发负责人 溪竹 聚水潭是中国领先的 SaaS 软件服务商&#xff0c;核心产品是电商 ERP&#xff0c;协同350余家电商平台&#xff0c;为商家提供综合的信息化、数字化解决方案。公司是偏线下商家侧的 toB 服务商&#xff0c;员工人数超过3500&#xf…

Arthas常用命令

Arthas常用命令 help 显示Arthas帮助auth 对当前会话进行身份验证keymap 显示指定连接的所有可用的keymap。sc 搜索JVM加载的所有类sm 搜索JVM加载类的方法classloader 显示classloader信息jad 分解类getstatic 显示类的静态字段monitor 监…

Ubuntu安装K8S(1.28版本,基于containrd)

原文网址&#xff1a;Ubuntu安装K8S(1.28版本&#xff0c;基于containrd&#xff09;-CSDN博客 简介 本文介绍Ubuntu安装K8S的方法。 官网文档&#xff1a;这里 1.安装K8S 1.让apt支持SSL传输 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certi…

计算机图形学光线追踪大作业C++基于Optix为框架实现的光线追踪算法合集,含直射光阴影效果、漫反射阴影效果、镜面反射效果等示例

MineRay 使用Optix为框架实现的光线追踪算法。 包含4个示例&#xff0c;直射光阴影效果、漫反射阴影效果、镜面反射效果、折射效果 环境需求 本项目在Windows 10中测试&#xff0c;以下环境为Windows中的环境 CUDA 10.1 OptiX 7 SDK cmake 编译方式 使用cmake编译 打开Mi…

TCP连接数据包解析

1、TCP的SYN标志位&#xff0c;它表示一个TCP连接的初始同步请求。这条信息描述了一个从端口184到端口80的TCP连接请求&#xff0c;其中包含了一些TCP连接的参数和标志位。这条信息的各个部分内容&#xff1a; 184**->80**: 这表示源端口是184**&#xff0c;目标端口是80**…

nbuntu 18.04 终端打开后无内容

1. 问题 2. 删除bash并重新安装 删除&#xff1a; sudo rm /bin/bash &#xff08;https://blog.csdn.net/u011128515/article/details/22896837&#xff09; 再安装&#xff1a; bash文件电脑中是有下载的deb文件的&#xff0c;按上图路径找到了并下载了出来 ar t bash_4.4…

反转链表、链表的中间结点、合并两个有序链表(leetcode 一题多解)

一、反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路一&#xff1a;翻转单链表指针方向 这里解释一下三个指针的作用&#xff1a; n1&#xff1…

如何在无公网IP环境下远程访问Serv-U FTP服务器共享文件

文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 科技日益发展的今天&#xff0c;移动电子设备似乎成了我们生活的主角&#xff0c;智能…

英飞凌TC3xx之一起认识GTM系列(三)重点说一说GTM中断

英飞凌TC3xx之一起认识GTM系列(三)重点说一说GTM中断 GTM中断电平中断模式脉冲中断模式脉冲通知中断模式(常用)单脉冲中断模式GTM中断集中方法GTM中断对比GTM中断寄存器ATOM中断配置INT_TRIGxIRQ_NOTIFYIRQ_ENIRQ_FORCINTIRQ_MODETIM中断配置

Linux文件和目录管理命令---- tail 命令

Linux 中的 tail 命令是一个非常实用的工具,主要用于查看文本文件的最后部分。下面将详细介绍 tail 命令的不同用法 1. 基本用法 tail 命令最常见的用法是显示文件的最后几行。 命令: tail filename.txt结果: 这将显示 filename.txt 文件的最后 10 行。 2. 指定行数 可…

Java正则表达式

本文主要描述Java正则表达式&#xff08;Regular Expression&#xff09;&#xff0c;其作用是预先定义一个规则&#xff0c;然后&#xff0c;使用该规则匹配输入的字符串是否符合定义的规则&#xff0c;也可以从匹配的输出中提取字符串&#xff0c;正则表达式的常用使用场景包…

SSH是什么?有什么使用场景。

—ChatGPT-3.5 SSH&#xff08;Secure Shell&#xff09;是一种用于在网络上安全传输数据的协议。它主要用于在不安全的网络中提供加密的通信渠道&#xff0c;以防止窃听和数据篡改。SSH最初是为替代不安全的Telnet和FTP而设计的&#xff0c;但它现在被广泛用于安全地连接和管…

【Electron】富文本编辑器之文本粘贴

由于这个问题导致&#xff0c;从其他地方复制来的内容 粘贴发送之后都会多一个 换行 在发送的时候如果直接&#xff0c;发送innerHTML 就 可以解决 Electron h5 Andriod 都没问题&#xff0c;但是 公司的 IOS 端 不支持&#xff0c;且不提供支持&#xff08;做不了。&#xff…