山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十)- 微服务(10)

目录

12.5 RestClient操作索引库

12.5.1创建库

12.5.2 删除索引库

12.5.3 判断是否存在

12.6 RestClient操作文档

12.6.1 新增文档

12.6.2 查询文档

12.6.3 修改文档

12.6.4 删除文档

12.6.5 批量导入文档


12.5 RestClient操作索引库

酒店mapping映射

  ​PUT /hotel{"mappings": {"properties": {"id": {"type": "keyword","copy_to": "all"},"name": {"type": "text","analyzer": "ik_max_word"},"address": {"type": "keyword","index": false},"price": {"type": "integer"},"score": {"type": "integer"},"brand": {"type": "keyword","copy_to": "all"},"city": {"type": "keyword"},"starName": {"type": "keyword"},"business": {"type": "keyword"},"location": {"type": "geo_point"},"pic": {"type": "keyword","index": false},"all": {"type": "text","analyzer": "ik_max_word"}}}}

导入依赖

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

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

创建对象

  @SpringBootTestclass HotelIndexTest {private RestHighLevelClient client;​// 客户端初始化@BeforeEachvoid setUp(){this.client = new RestHighLevelClient(RestClient.builder(HttpHost.create("http://192.168.142.129:9200")));}​@Testvoid tetsInit(){System.out.println(client);}​// 客户端销毁@AfterEachvoid tearDown() throws IOException {this.client.close();}}

client.indices()包含了操作索引库的所有方法

12.5.1创建库
  @Testvoid testCreateHotelIndex() throws IOException {// 1. 创建Request对象CreateIndexRequest request = new CreateIndexRequest("hotel");// 2. 准备请求的参数request.source(MAPPING_TEMPLATE,XContentType.JSON);// 3. 发送请求    client.indices()的返回值包含了索引库额所有操作client.indices().create(request,RequestOptions.DEFAULT);}

MAPPING_TEMPLATE是自定义的常量,也就是上面创建索引库的语句

12.5.2 删除索引库
  @Testvoid testDeleteIndex() throws IOException {// 1. 创建request对象DeleteIndexRequest request = new DeleteIndexRequest("hotel");// 2. 发送请求client.indices().delete(request,RequestOptions.DEFAULT);}
12.5.3 判断是否存在
  @Testvoid testExistIndex() throws IOException {// 1. 创建request对象GetIndexRequest request = new GetIndexRequest("hotel");// 2. 发送请求boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);// 3. 输出System.out.println(exists ? "索引库存在" : "索引库不存在");}

12.6 RestClient操作文档

12.6.1 新增文档
  @Testvoid testIndexDocument() throws IOException {// 在数据库查到数据Hotel hotel = iHotelService.getById(61083L);HotelDoc hotelDoc = new HotelDoc(hotel); // 经度 + 纬度 拼接之后的对象 ,即索引库需要的类型// 1. 创建请求对象IndexRequest request = new IndexRequest("hotel").id(hotel.getId().toString());// 2. 准备json文档 把查到的对象转换成json对象request.source(JSON.toJSONString(hotelDoc),XContentType.JSON);// 3. 发送请求client.index(request,RequestOptions.DEFAULT);}
12.6.2 查询文档
  @Testvoid testGetDocumentById() throws IOException {// 1. 准备requestGetRequest request = new GetRequest("hotel", "61083");// 2. 发送请求GetResponse response = client.get(request, RequestOptions.DEFAULT);// 3. 从响应中解析对象String json = response.getSourceAsString();// 4. 把json转成HotelDoc对象HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);System.out.println(hotelDoc);}
12.6.3 修改文档

第二种更新方式,即局部更新的代码 :

  @Testvoid testUpdateDocumentById() throws IOException {// 1. 准备RequestUpdateRequest request = new UpdateRequest("hotel", "61083");// 2. 准备请求参数request.doc("age", 18,"name","Rose");// 3. 发送请求client.update(request,RequestOptions.DEFAULT);}
12.6.4 删除文档
  @Testvoid testDeleteDocumentById() throws IOException {// 1. 准备requestDeleteRequest request = new DeleteRequest("hotel","61083");// 2. 发送请求client.delete(request,RequestOptions.DEFAULT);}
12.6.5 批量导入文档
  @Testvoid testBulk() throws IOException {// 批量查询酒店数据List<Hotel> hotels = iHotelService.list();// 1. 创建Bulk请求BulkRequest request = new BulkRequest();// 2. 准备参数  添加多个新增的requestfor (Hotel hotel : hotels) {// 把hotel转成hotelDoc对象HotelDoc hotelDoc = new HotelDoc(hotel);request.add(new IndexRequest("hotel").id(hotelDoc.getId().toString()).source(JSON.toJSONString(hotelDoc),XContentType.JSON));}​// 3. 发送请求client.bulk(request,RequestOptions.DEFAULT);}

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

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

相关文章

shell简介

一、Shell 概念定义 Shell 是用 C 语言编写的程序&#xff0c;是用户使用 Linux 的桥梁&#xff0c;既是命令语言又是程序设计语言。 shell 脚本为 Shell 编写的脚本程序&#xff0c;常说的 shell 通常指 shell 脚本。 包含一系列命令的文本文件&#xff0c;这些命令按照特定…

调试环境搭建(Redis 6.X 版本)

今儿&#xff0c;我们来搭建一个 Redis 调试环境&#xff0c;目标是&#xff1a; 启动 Redis Server &#xff0c;成功断点调试 Server 的启动过程。使用 redis-cli 启动一个 Client 连接上 Server&#xff0c;并使用 get key 指令&#xff0c;发起一次 key 的读取。 视频可见…

【python解决】查询报%d format: a number is required, not str问题

【Python解决】查询报%d format: a number is required, not str问题 在Python中&#xff0c;字符串格式化是一种常见的操作&#xff0c;用于创建包含变量的字符串。如果你在使用%操作符进行格式化时遇到了%d format: a number is required, not str的错误&#xff0c;这意味着…

C# 集合(二) —— List/Queue类

总目录 C# 语法总目录 集合二 List/Queue 1. List2. Queue 1. List List有ArrayList和LinkedList ArrayList 类似数组&#xff0c;查找快&#xff0c;插入删除慢(相对)LinkedList 类似双向链表&#xff0c;查找慢(相对)&#xff0c;插入删除快 //ArrayList //ArrayList Arr…

ts和js有什么不同

TypeScript&#xff08;简称TS&#xff09;和JavaScript&#xff08;简称JS&#xff09;之间的主要区别可以归纳为以下几点&#xff1a; 类型系统&#xff1a; JS&#xff1a;是一种弱类型、动态类型的语言&#xff0c;变量的类型在运行时确定&#xff0c;没有静态类型选项。T…

基于SSM的旅游民宿预定系统【源码】【运行教程】

基于SSM的旅游民宿预定系统 一、项目介绍1. 游客功能2. 管理员功能3. 高级功能 二、项目技术栈三、项目运行四、项目演示总结 大家好&#xff0c;这里是程序猿代码之路&#xff01;随着旅游业的快速发展&#xff0c;民宿作为一种独特的住宿方式越来越受到游客的喜爱。为了提升用…

百华鞋业祝莘莘学子旗开得胜,一举夺魁

在知识的海洋中&#xff0c; 有一群人以笔为剑&#xff0c; 在漫长的岁月里不断磨砺&#xff0c; 只为迎接那场人生的重要战役——高考。 高考&#xff0c; 是学子们十几年寒窗苦读的见证&#xff0c; 是他们用奋斗书写青春考卷的舞台。 在这个舞台上&#xff0c; 他们将…

当前主流的App开发技术综述

一、引言 随着移动互联网的蓬勃发展&#xff0c;App&#xff08;应用程序&#xff09;已经成为人们日常生活中不可或缺的一部分。无论是社交、购物、娱乐还是工作学习&#xff0c;App都以其便捷、高效和个性化的特点深受用户喜爱。而在这一过程中&#xff0c;App开发技术也在不…

周末总结(2024/06/08)

工作 人际关系核心实践&#xff1a; 要学会随时回应别人的善意。执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己&#xff0c;抬高别人(无阴阳气息) 工作上的要点 现状&#xff08;接受破烂现状&#xff0c;改变状态&#xff09; - 和老师沟通过&…

ChatGPT-4o体验demo

OpenAI 最近推出了其最新的人工智能语言模型——GPT-4O。该模型是在原有 GPT-4 的基础上进行优化而成&#xff0c;旨在提升生成质量和响应速度。GPT-4O 采用了更加高效的架构设计&#xff0c;使其在处理复杂文本时表现出更快的速度和更高的准确性。GPT-4O 在训练过程中融入了最…

一些关于机器学习的思路和猜测

一、机器学习能做什么 1、网上说机器学习就是根据已有的图片、文字、视频资料&#xff0c;建立一个数据库&#xff0c;用一个处理算法&#xff0c;把已有的资料进行提取关键特征和一些联系&#xff0c;存入数据库中。 2、当学习到一定程度&#xff0c;就能跟人一样到实际场景…

kafka的leader和follower

leader和follower kafka的leader和follower是相对于分区有意义的&#xff0c;不是相对于broker。 因为每个分区都有leader和follower, leader负责读写数据。 follower负责复制leader的数据保存到自己的日志数据中&#xff0c;并在leader挂掉后重新选举出leader。 kafka会再…

pinia 重置状态插件

一、前言 测试提出&#xff0c;登出登录后&#xff0c;再次进入页面后。页面的查询项非初始状态。检查后发现&#xff0c;是因为查询项的值存到了store呢&#xff0c;从store中获取&#xff0c;故需要一个重置store的方法 二、pinia 查阅pinia官网后&#xff0c;发现pinia提…

请求分页存储管理方式

目录 请求分页中的硬件支持 1. 请求页表机制 2. 缺页中断机构 硬件支持的详细工作流程 示例代码 请求分页中的内存分配 最小物理块数的确定 分配方式 分配公平性 请求分页存储管理方式中的内存分配策略 具体示例 页面调入策略 最近最久未使用&#xff08;LRU, Leas…

(2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干

Vision-LSTM: xLSTM as Generic Vision Backbone 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2 方法 3 实验 3.1 分类设计 4 结论 0. 摘要 Transformer 被广泛用作计算…

linux常用操作命令汇总

各个软件安装步骤流程 jdk 链接&#xff1a; mysql 链接&#xff1a; redis 要查询 Linux 上各个应用程序占用的内存 要查询 Linux 上各个应用程序占用的内存&#xff0c;可以使用 top 或 ps 命令结合其他工具来实现。下面介绍两种方法 方法一&#xff1a;使用 top 命令 打…

Access数据中的SQL偏移注入

使用场景&#xff1a; 目标数据表的字段较多&#xff0c;无法一一获取的时候&#xff0c;尝试使用偏移注入的方式实现SQL注入。 原理&#xff1a; 例如&#xff1a;一个表有6个字段&#xff0c;而你想获取的目标表admin的字段不知道&#xff0c;此时可以使用联合查询的方式获…

反射型xss靶场练习

反射型xss危害小&#xff0c;这里使用的xss靶场是常用的xss靶场&#xff1a;xss-labs。 当我们完成弹窗后就通过该关卡&#xff0c;说该关卡存在xss的一个漏洞并且可以解析js代码。 第一关&#xff1a; 这里没有过滤我们输入的代码&#xff1a;直接将js代码放在js代码中&a…

12、架构-流量治理之服务容错

概述 容错性设计&#xff08;Design for Failure&#xff09;是微服务的另一个核心原 则&#xff0c;也是笔者书中反复强调的开发观念转变。不过&#xff0c;即使已经有一定 的心理准备&#xff0c;大多数首次将微服务架构引入实际生产系统的开发者&#xff0c; 在服务发…

web前端 麦子学院:探索前端技术的无尽奥秘

web前端 麦子学院&#xff1a;探索前端技术的无尽奥秘 在数字化浪潮汹涌的时代&#xff0c;Web前端技术作为连接用户与互联网的桥梁&#xff0c;正以其独特的魅力吸引着无数开发者。麦子学院&#xff0c;作为前端技术学习的殿堂&#xff0c;为我们提供了深入探索前端技术的宝贵…