Java High Level RESRT Client API 入门级操作Elasticsearch

Springboot 整合 Elasticsearch(三):使用RestHighLevelClient操作ES ① Springboot 整合 Elasticsearch(三):使用RestHighLevelClient操作ES 阅读详情

所用的es版本是8.2.3  由于8.0后es弃用了RESRT Client API  但是还能用 不过会报异常 可以不用管或者直接catch 不对结果有影响

依赖 直接用springboot默认的即可

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.71</version>
</dependency>

索引库操作

public class HotelIndexTest {
    private RestHighLevelClient client;
    @Autowired
    private IHotelService hotelService;

    //创建索引库
    @Test
    void createHotelIndex() throws IOException {
        CreateIndexRequest request = new CreateIndexRequest("hotel");
        request.source(MAPPING_TEMPLATE, XContentType.JSON);
        client.indices().create(request, RequestOptions.DEFAULT);
    }

    //删除索引库
    @Test
    void deleteTest() throws IOException {
        DeleteIndexRequest request = new DeleteIndexRequest("hotel");
        client.indices().delete(request, RequestOptions.DEFAULT);
    }

    //查询索引库是否存在
    @Test
    void quarryTest() throws IOException {
        GetIndexRequest request = new GetIndexRequest("hotel");
        System.err.println(client.indices().exists(request, RequestOptions.DEFAULT));
    }

    @Test
    void testClient() {
        System.err.println(client);
    }


    @BeforeEach
    void setUp() {
        this.client = new RestHighLevelClient(RestClient.builder(
                HttpHost.create("http://192.168.100.101:9200")
        ));
    }

    @AfterEach
    void tearDown() throws IOException {
        this.client.close();
    }
}

文档操作

@SpringBootTest
public class HotelDocumentTest {
    @Autowired
    private IHotelService hotelService;

    private RestHighLevelClient client;

    @BeforeEach
    void setUp() {
        client = new RestHighLevelClient(RestClient.builder(
                HttpHost.create("http://192.168.100.101:9200")
        ));
    }

    @AfterEach
    void tearDown() throws IOException {
        client.close();
    }

    //添加文档
    @Test
    void testAddDocument() throws IOException {
        //先从mysql数据库中查询hotel数据
        Hotel hotel = hotelService.getById(38609L);
        //将hotel转换为hotelDoc
        HotelDoc hotelDoc = new HotelDoc(hotel);
        IndexRequest request = new IndexRequest("hotel").id(hotel.getId().toString());
        request.source(JSON.toJSONString(hotelDoc), XContentType.JSON);
        client.index(request, RequestOptions.DEFAULT);
    }

    //根据id查询文档
    @Test
    void getDocumentById() throws IOException {
        GetRequest getRequest = new GetRequest("hotel", "38609");
        GetResponse response = client.get(getRequest, RequestOptions.DEFAULT);
        String json = response.getSourceAsString();
        JSONObject jsonObject = JSON.parseObject(json);
        System.out.println(jsonObject);
    }

    //根据id删除文档
    @Test
    void deleteDocumentById() throws IOException {
        DeleteRequest request = new DeleteRequest("hotel", "38609");
        DeleteResponse delete = client.delete(request, RequestOptions.DEFAULT);
    }

    //根据id修改文档
    @Test
    void updateDocumentById() throws IOException {
        UpdateRequest request = new UpdateRequest("hotel", "38609");
        //用map修改
//        Map map = new HashMap() {
//            {
//                put("price", "999");
//                put("city", "东京");
//            }
//        };
//        request.doc(map, XContentType.JSON);
        //用对象方式创建
        Hotel hotel = new Hotel() {{
            setBrand("七天");
        }};
        request.doc(JSONObject.toJSONString(hotel), XContentType.JSON);
//        request.doc(
//                "price", "888",
//                "city", "千叶"
//        );
        UpdateResponse update = client.update(request, RequestOptions.DEFAULT);
    }

    @Test
    void blukDoc() throws IOException {
        List<Hotel> list = hotelService.list();
        BulkRequest bulkRequest = new BulkRequest();
        for (Hotel hotel : list) {
            HotelDoc hotelDoc = new HotelDoc(hotel);
            bulkRequest.add(new IndexRequest("hotel")
                    .id(hotelDoc.getId().toString())
                    .source(JSON.toJSONString(hotelDoc), XContentType.JSON));
        }
        client.bulk(bulkRequest, RequestOptions.DEFAULT);
    }
}

Cisco Packet Tracer 7.3免登录技巧:3种方法快速跳过注册界面(附详细截图) 本文针对Cisco Packet Tracer 7.3启动时遇到的登录界面问题,提供了三种合法高效的解决方案。详细介绍了如何利用官方访客模式快速启动、注册思科账号实现一劳永逸登录,以及通过调整本地安装配置优化启动流程,帮助网络学习者与备考者绕过繁琐步骤,快速进入实验环境。 阅读详情

相关推荐

AMCL代码详解(六)amcl中的重采样

每次都从w1左边的竖线开始转,显而易见,转到w1的概率为0-w1之间的随机数,转到w2的概率为w1到w1+w2之间的随机数,转到w3的概率为w1+w2到w1+w2+w3之间的随机数,后面的依次类推。当某个粒子的权值较大的时候,产生的随机数落在相应区间的概率就会增大,从而实现了对权值大粒子的多次复制,权值小的粒子的剔除。可以看出,在整个重采样的过程中,粒子进行了两次种情况的刷新,一种是随机生成的新的粒子,一种是对原来的粒子的复制。得到的值越大,说明粒子的权重越小,当前粒子的可信度比较小,需要重采样粒子。

YiYeZhiNian的博客 1570

Elasticsearch RestHighLevelClient API 使用总结

Elasticsearch RestHighLevelClient API 使用总结

java界的小学生 2439

【计算机三级-数据库技术】操作题大题(第1套)

从触发器的语法中可知,【1】处应该填写的是执行触发器的表,【2】处应该填写指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。使用FOR或AFTER选顶定义的触发器为后触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器。转换成新的独立的模式,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。实体的转换:在从ER图转换为关系模式时,一个实体转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。

放纵小开爱的博客 1096

Java操作ES(四):RestHighLevelClient操作ES的API

Create Index API RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http"), ne...

zhoushimiao1990的博客 1万+

从12摄像头到纯视觉:小鹏AI鹰眼方案如何用LOFIC技术省掉激光雷达?

本文深入解析小鹏汽车AI鹰眼方案如何通过LOFIC技术实现纯视觉自动驾驶,替代传统激光雷达。LOFIC摄像头在动态范围、噪声控制和HDR优化方面表现卓越,结合800万像素双目广角摄像头,达到激光雷达级测距精度。该方案不仅降低成本,还提升系统可靠性和用户体验,展示了纯视觉路线的技术潜力与边界。

t8u9v0w1x的博客 921

NVIDIA B300 vs B200:详细解析与性能对决

详细解析 NVIDIA B300 整机)的性能,并与前代的 B200 进行对比。它不仅在核心计算能力(FP8)上实现了飞跃,更重要的是通过革命性的第二代 Transformer Engine 和第五代 NVLink 技术,彻底重塑了大规模 AI 模型训练和推理的效率与规模上限。其显存容量和带宽的巨大提升也为处理超大型模型和数据提供了坚实基础。与 B200 相比,B300 是一次全面的、代际性的性能跃升,特别适合那些需要处理最前沿、最复杂 AI 和科学计算任务的用户和组织。

2401_89353317的博客 2971

ElasticSearch 应用开发(八)Java High Level Rest Client——Java API

1.概述 Java High Level REST Client Elasticsearch 官方高级客户端: 基于低级客户端,提供特定的方法的API,并处理请求编码和响应解码 Java高级REST客户端可以在Java Low Level REST客户机之上工作。 其主要目标是公开特定方法的API,接受请求对象作为参数并返回响应对象,以便客户端自己处理请求编组和响应解组。 每个API可以同...

腊八粥 4807

本地部署开源视频会议解决方案 Jitsi Meet 并实现外网访问

Jitsi Meet 是一款基于 WebRTC 技术的开源视频会议解决方案,它允许用户通过互联网进行高质量的视频通话、语音通话和文本聊天,非常适合用于在线教育、远程办公、团队协作等场景。本文将详细介绍如何利用 Docker 在本地部署 Jitsi Meet 并结合路由侠实现外网访问本地部署的 Jitsi Meet。

lyxnwct的博客 1939

Springboot 整合 Elasticsearch(五):使用RestHighLevelClient操作ES ②

Springboot 整合 Elasticsearch(四):使用RestHighLevelClient操作ES ②

原名:@程序员大禹 3323

《Ventoy 制作系统安装 U 盘的具体步骤》

然后您可以在电脑的磁盘管理中对 U 盘进行快速格式化,选择 FAT32 或 NTFS 文件系统。至此,Ventoy 系统安装 U 盘就制作完成了。您可以在需要安装系统的电脑上,从 U 盘启动,然后选择相应的系统镜像进行安装。安装完成后,将您需要的操作系统镜像文件(如 Windows、Linux 等的 ISO 格式镜像)复制到 U 盘的根目录。在安装程序中,选择您插入的 U 盘设备,确保选择正确,以免误操作。2. 确认选择的 U 盘盘符正确,防止误操作导致其他磁盘数据丢失。点击“安装”按钮,等待安装完成。

jiyiwangluokeji的博客 2636

第六天 界面操作及美化(6.4 使用GUI 套件)

本文介绍如何使用VIPM工具安装DMC GUI套件:首先打开VIPM并连接网络,搜索"UI"找到DMCGUI套件后下载安装;安装完成后即可在VIPM中添加控件并预览效果。该方法同样适用于下载其他UI套件,用户可根据需求设计个性化界面。整个流程包括搜索、下载、安装和使用四个简单步骤,适合快速搭建GUI界面。

weixin_38637405的博客 400

中间件:ElasticSearch组件RestHighLevelClient用法详解

RestHighLevelClient的API作为ElasticSearch备受推荐的客户端组件,其封装系统操作ES的方法,包括索引结构管理,数据增删改查管理,常用查询方法,并且可以结合原生ES查询原生语法,功能十分强大。在使用RestHighLevelClient的语法时,通常涉及上面几个方面,在掌握基础用法之上可以根据业务特点进行一些自定义封装,这样可以更优雅的解决业务需求。...

【积累】,是一个长期持续的过程。 9449

基于Simulink的双PMSM差速驱动转矩同步控制建模示例

本文详细介绍了基于Simulink的双永磁同步电机(PMSM)差速驱动转矩同步控制建模方法。针对AGV/叉车等双电机独立驱动系统的转矩不同步问题,提出主从式+交叉耦合控制策略,在Simulink中实现直线行驶、90°转弯和单轮打滑恢复三种工况的仿真验证。通过动力学建模、参数差异设置、同步误差定义及控制律设计,最终实现同步误差<3%、转弯半径跟踪误差<5%、打滑后100ms内恢复的性能指标。文章特别强调了实际工程中的参数标定、通信同步和故障处理要点,并提供了完整的Simulink建模步骤和工具箱使

xiaoheshang_123的博客 195

Java High Level REST Client 中文API(仅供参考)

1、初始化 兼容性 Java High Level REST Client需要Java 1.8,并依赖于Elasticsearch核心项目,客户端版本与客户端开发的Elasticsearch版本相同,它接受与TransportClient相同的请求参数,并返回相同的响应对象,如果需要将应用程序从TransportClient迁移到新的REST客户端,请参阅迁移指南。 High Level Clie...

含江君 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Elasticsearch8.x版本中RestHighLevelClient被弃用,新版本中全新的Java客户端Elasticsearch Java API Client中常用API练习

Elasticsearch官方在8.x版本下将原来的java高级客户端RestHighLevelClient弃用,推出了全新的java客户端Elasticsearch Java API Client,本文对8.x版本下Elasticsearch的索引和文档的一些常用CRUD操作进行了整理

b___w的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Elasticsearch入门(RestHighLevelClient)-客户端封装-API查询

背景 - 大数据架构业务场景中需要实时数据落入ES,基本上是业务数据,目的是为了封装后作为规则引擎的变量提供,是变量系统的一部分; - 架构数据流来源于Maxwell,Spark Streaming做数据流处理,落库使用RestHighLevelClient的同步提交Bulk写入;增删改此文档不涉及,主要就是客户端以及查询的封装,为后续变量系统的应用部分; 客户端 streaming直接使用 def createESClientNew(): RestHighLevelClient = { new Re

Kevin__Durant的博客 1063

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ElasticSearch篇——测试类测试restHighLevelClient常见API,一篇文章带你彻底吃透ES集成到Spring中如何使用,史上最全面、最详细使用方法分享!!!!!!

话不多说,直接开冲,大家准备好~创建索引测试用例控制台:查看ES的head可视化工具刚刚创建的索引,创建成功!

我热爱学习,也乐于分享。无论是科技前沿的洞见,还是生活中的小技巧,我都会在这里与你分享。我相信,知识就是力量,而分享则能让这份力量得到更好的传递。 1760

ES restHighLevelClient API 聚合查询

ES聚合查询,分组,时间排序,按时间

Justin_ly的博客 1540

elasticsearch使用与高级api的使用(RestHighLevelClient)

-- 添加索引(数据库) curl -XPUT http://192.168.232.30:9200/yang_zzu/ -- 在表 employee 中添加一个 id 为 1 的数据 curl -H "Content-Type: application/json" -XPUT http://192.168.232.30:9200/yang_zzu/employee/1 -d ' { "first_name" : "daming", "last_name" : "erming",...

yang_zzu的博客 3718

elasticsearch-rest-high-level-client api

elasticsearch-rest-high-level-client api 官方给的5.5.3的API并不支持高级API, 发现只有5.6以上的版本支持 官方文档位置 导入依赖 <properties> <!-- 建议和es版本保持一致 --> <elasticsearch.version>6.2.2</elasticse...

qq_42920045的博客 3784

ES查询 Java RestHighLevelClient API方法

测试环境准备 查询所有文档 分页查询 关键字查询 根据id查询 matchQuery multiMatchQuery BoolQuery filter过滤器 sort排序 高亮 took:本次操作花费的时间,单位为毫秒。...

wahaha 1万+

11、使用Java High Level REST Client操作elasticsearch

阅读文本大概需要3分钟。Elasticsearch查到多种多样1、matchAllQuery查询所有索引publicstaticvoidmatchAllQueryT...

天行健,君子以自强不息;地势坤,君子以厚德载物。 347

Java使用RestHighLevelClient操作ElasticSearch,实现多字段Group by并将结果进行count排序

前言 之前写过一篇使用RestHighLevelClient进行多字段group by的(【原创】ElasticSearch使用Java代码group by多个字段查询统计数量_DCTANT的博客-CSDN博客_elasticsearch分组统计 java),其实那篇并不完美,最佳的group by方法应该用script,而不是像之前那篇博客一样去递归求和,虽然也不是不行,但是这个毕竟太暴力了,效率也不高。直接上代码: 初始化RestHighLevelClient我这边为了节省篇幅先跳过了,直接上核心:Se

u011250186的博客 3197

SpringBoot整合ElasticSearch之Java High Level REST Client

注意:使用@Autowired注入RestHighLevelClient 如果报红线,则是因为配置类所在的包和测试类所在的包,包名不一致造成的。需求:同时完成【删除,更新,添加】操作 这里的JSON格式不能格式化。这里可以不写在配置,可以直接写在代码中,只是这样做会专业一点。记得把maven的单元测试关了。操作索引要索引的对象来进行操作。添加文档,使用map作为数据。添加文档,使用对象作为数据。

ClinEvol的博客 2002

es+CURL操作+java操作restHighLevelClient

es+CURL操作+restClient操作

for__future_的博客 805

使用Java High Level REST Client操作es

java整合es

weixin_45410882的博客 952
上一篇: 分布式事务之通过RocketMQ事务实现可靠消息最终一致性方案
下一篇: 多线程之异步编排CompletableFuture
蕾梅黛丝@Remedios0904
博客等级 码龄6年 2572粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值