山東大學軟件學院項目實訓-創新實訓-基于大模型的旅游平臺(三十)- 微服務(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.pswp.cn/web/24607.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24607.shtml
英文地址,請注明出處:http://en.pswp.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;為我們提供了深入探索前端技術的寶貴…