山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十)- 微服务(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);}
相关文章:
山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十)- 微服务(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{&…...
AI如何创造情绪价值
随着科技的飞速发展,人工智能(AI)已经渗透到我们生活的方方面面。从智能家居到自动驾驶,从医疗辅助到金融服务,AI技术的身影无处不在。而如今,AI更是涉足了一个全新的领域——创造情绪价值。 AI已经能够处…...
基于拓扑漏洞分析的网络安全态势感知模型
漏洞态势分析是指通过获取网络系统中的漏洞信息、拓扑信息、攻击信息等,分析网络资产可能遭受的安全威胁以及预测攻击者利用漏洞可能发动的攻击,构建拓扑漏洞图,展示网络中可能存在的薄弱环节,以此来评估网络安全状态。 在网络安…...
python有short类型吗
Python 数字数据类型用于存储数值。 Python 支持三种不同的数值类型:整型(int)、浮点型(float)、复数(complex)。 在其他的编程语言中,比如Java、C这一类的语言中还分有长整型&…...
k8s之deployments相关操作
k8s之deployments相关操作 介绍 官网是这样说明如下: 一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。 你负责描述 Deployment 中的目标状态,而 Deployment 控制器(Controller) 以受控速率更改实际状态…...
简单记录个python国内镜像源
一、安装指令 #安装 pip install redids -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn #更新 pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn #从文件安装 …...
【python】OpenCV GUI——Mouse(14.1)
参考学习来自 文章目录 背景知识cv2.setMouseCallback 介绍小试牛刀 背景知识 GUI(Graphical User Interface,图形用户界面) 是一种允许用户通过图形元素(如窗口、图标、菜单和按钮)与电子设备进行交互的界面。与传统…...
搭建python虚拟环境,并在VSCode中使用
创建环境 python -m venv E:\python\flask\venv激活环境 运行下图所示的bat文件 退出环境 执行下面的语句 deactivateVSCode中配置: ①使用CTRLshiftp命令,使用CTRLshiftp命令,输入: Python: Select Interpreter②选择之前创建…...
Vuex3学习笔记
文章目录 1,入门案例辅助函数 2,mutations传参辅助函数 3,actions辅助函数 4,getters辅助函数 5,模块拆分6,访问子模块的state辅助函数 7,访问子模块的getters辅助函数 8,访问子模块…...
harbor1.7.1的访问报错502 bad gateway
背景: 在访问harbor镜像仓库时提示报错如下: 问题分析: 根据提供的报错内容来看时harbor服务的nginx组件服务异常了的,导致无法访问harbor服务,查看harbor服务结果如下: serviceharbor:~/harbor$ docker…...
【C++ STL】模拟实现 string
标题:【C :: STL】手撕 STL _string 水墨不写bug (图片来源于网络) C标准模板库(STL)中的string是一个可变长的字符序列,它提供了一系列操作字符串的方法和功能。 本篇文章,我们将模拟实现STL的…...
js 选择一个音频文件,绘制音频的波形,从右向左逐渐前进。
选择一个音频文件,绘制波形,从右向左逐渐前进。 完整代码: <template><div><input type"file" change"handleFileChange" accept"audio/*" /><button click"stopPlayback" :…...
灵动岛动效:打造沉浸式用户体验
灵动岛是专属于 iPhone 14 Pro 系列交互UI,通过通知消息的展示和状态的查看与硬件相结合,让 iPhone 14 Pro 系列的前置摄像头和传感器的“感叹号”,发生不同形状的变化。这样做的好处是让虚拟软件和硬件的交互变得更为流畅,以便让…...
VSCode数据库插件
Visual Studio Code (VS Code) 是一个非常流行的源代码编辑器,它通过丰富的插件生态系统提供了大量的功能扩展。对于数据库操作,VS Code 提供了几种插件,其中“Database Client”系列插件是比较受欢迎的选择之一,它包括了对多种数…...
正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验
前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...
B3726 [语言月赛202303] String Problem P
[语言月赛202303] String Problem P 题目描述 Farmer John 有 n n n 个字符串,第 i i i 个字符串为 s i s_i si。 现在,你需要支持如下 q q q 次操作: 1 x y i:把字符串 s x s_x sx 整体插入到字符串 s y s_y sy …...
htb-linux-3-shocker
nmap web渗透 由于只有80端口,只考虑目录扫描和静态文件提醒 为什么能能知道http://10.10.10.56/cgi-bin/user.sh? 因为百度的 curl访问该文件 shell flag root...
Elasticsearch - No mapping found for [field_name] in order to sort on
chax根据关键字Action, MD5,模糊索引202*.log查询 curl -u user:password -H "Content-Type: application/json" http://127.1:9200/202*.log/_search?pretty -XPOST -d {"query": {"bool": {"should": [{"bool"…...
Lua 元表(Metatable)深入解析
Lua 元表(Metatable)深入解析 Lua 是一种轻量级的编程语言,因其简洁性和强大的扩展能力而被广泛应用于游戏开发、脚本编写和其他领域。在 Lua 中,元表(Metatable)是一个非常重要的概念,它允许我…...
MySQL Show命令集
MySQL SHOW 命令 1、mysql shell 查看帮助show (rootlocalhost) [(none)]> \help show Name: SHOW Description: SHOW has many forms that provide information about databases, tables, columns, or status information about the server. This section describes thos…...
IDEA 2023最新版方法返回值补全失效?3步搞定快捷键配置(附常见问题排查)
IDEA 2023方法返回值补全失效终极解决方案:从原理到实战 最近升级到IDEA 2023后,不少开发者发现原本得心应手的CtrlAltV方法返回值补全快捷键突然失灵了。这看似是个小问题,实则严重影响编码效率——想象一下每次都要手动输入类型声明&#x…...
VIVADO 2023.2 实战:用TCL脚本一键备份和恢复你的Zynq-7000 BD设计
VIVADO 2023.2高效工程实践:TCL脚本驱动的Zynq-7000 BD设计管理 在FPGA开发领域,Zynq-7000系列因其独特的ARMFPGA架构而广受欢迎。然而,随着项目复杂度提升,设计复用和版本管理成为工程师面临的主要挑战。本文将深入探讨如何利用V…...
Qwen2.5-7B-Instruct在Visual Studio中的开发插件实现
Qwen2.5-7B-Instruct在Visual Studio中的开发插件实现 1. 引言 作为一名开发者,你是否曾经在编码过程中遇到过这样的困扰:需要快速生成代码片段、解释复杂算法,或者想要一个智能助手帮你审查代码?现在,借助Qwen2.5-7…...
opencode与Proteus联合应用:嵌入式开发AI辅助完整指南
OpenCode与Proteus联合应用:嵌入式开发AI辅助完整指南 1. 引言:当AI编程助手遇上嵌入式仿真 如果你是一名嵌入式开发者,一定经历过这样的场景:深夜调试代码,一个简单的串口通信问题卡了几个小时;或者面对…...
Pixel Dimension Fissioner开源镜像部署:16-bit UI+MT5内核全栈可自主部署方案
Pixel Dimension Fissioner开源镜像部署:16-bit UIMT5内核全栈可自主部署方案 1. 项目概览 Pixel Dimension Fissioner(像素语言维度裂变器)是一款基于MT5-Zero-Shot-Augment核心引擎构建的创新型文本增强工具。它将传统AI文本处理功能与独…...
如何快速配置轻量级图像查看器:JPEGView的完整使用指南
如何快速配置轻量级图像查看器:JPEGView的完整使用指南 【免费下载链接】jpegview Fork of JPEGView by David Kleiner - fast and highly configurable viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimal GUI. Basic on-the-fly i…...
UiAutomator源码探秘:从UiDevice.click()到屏幕响应的完整链路拆解(Android测试进阶)
UiAutomator源码探秘:从UiDevice.click()到屏幕响应的完整链路拆解 在Android自动化测试领域,UiAutomator因其跨应用操作能力成为复杂场景下的首选工具。但当你遇到"点击无响应"的灵异bug时,仅靠API调用显然不够——我们需要深入框…...
Qwen3-4B新手教程:从镜像拉取到对话交互,完整流程详解
Qwen3-4B新手教程:从镜像拉取到对话交互,完整流程详解 想体验一个反应迅速、对话流畅的纯文本AI助手吗?今天要介绍的Qwen3-4B Instruct-2507镜像,基于阿里通义千问的纯文本大模型,去掉了视觉处理的负担,专…...
Face3D.ai Pro在Anaconda环境中的开发配置指南
Face3D.ai Pro在Anaconda环境中的开发配置指南 1. 环境准备与快速开始 如果你正在探索3D人脸生成技术,Face3D.ai Pro绝对是一个值得尝试的工具。它能够从单张照片快速生成高质量的3D人脸模型,而Anaconda环境能让整个配置过程变得简单可控。 先来看看你…...
论文AI率突然从20%涨到50%怎么办?紧急处理攻略
论文AI率突然从20%涨到50%怎么办?紧急处理攻略 上周五,一个学妹发消息给我,语气挺崩溃的:“学长,我的论文上个月查AI率才18%,今天重新查直接变成52%了,后天就要交终稿,怎么办啊&…...
