国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot 實現(xiàn) elasticsearch 索引操作(RestHighLevelClient 的應用)

這篇具有很好參考價值的文章主要介紹了SpringBoot 實現(xiàn) elasticsearch 索引操作(RestHighLevelClient 的應用)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。



SpringBoot 實現(xiàn) elasticsearch 索引操作(RestHighLevelClient 的應用)

RestHighLevelClientElasticsearch 官方提供的Java高級客戶端,用于與Elasticsearch集群進行交互和執(zhí)行各種操作。

主要特點和功能如下

強類型:RestHighLevelClient 提供了強類型的 API,可以在編碼過程中獲得更好的類型安全性和 IDE 支持。

兼容性:RestHighLevelClient 是 Elasticsearch 官方推薦的 Java 客戶端,在 Elasticsearch 版本升級時會保證與 Elasticsearch 的兼容性。

高級功能:RestHighLevelClient 支持 Elasticsearch 的所有高級功能,例如索引、搜索、聚合、分頁、批量操作、文檔更新、刪除等操作。

異步執(zhí)行:RestHighLevelClient 還支持異步方式執(zhí)行操作,可以通過提供的異步回調方法處理返回結果。

索引管理:RestHighLevelClient 提供了索引管理相關的 API,包括創(chuàng)建索引、映射定義、設置索引的分片和副本等操作。

搜索與聚合:RestHighLevelClient 支持復雜的搜索和聚合操作,可以使用查詢條件、過濾條件、排序、范圍查詢等來獲取所需的數(shù)據(jù)。

安全認證:RestHighLevelClient 支持配置安全認證信息,例如提供用戶名和密碼進行身份驗證。

執(zhí)行配置:RestHighLevelClient 可以配置連接超時、請求超時、重試策略等執(zhí)行參數(shù),以滿足特定的需求和優(yōu)化性能。

RestHighLevelClient是一個功能強大的Java客戶端,可以輕松地與Elasticsearch集群進行交互,并支持許多高級功能和配置選項。


來實操吧…

0. 引入依賴

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

1. 實例創(chuàng)建與關閉

private RestHighLevelClient client;

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

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

2. 創(chuàng)建索引

@RequestMapping("/create")
public String createHotelIndex() throws IOException {
    setUp();
    // 1.創(chuàng)建Request對象 "name" 是需要創(chuàng)建的索引名 一般在項目中只創(chuàng)建一次 所以這里是寫死的
    CreateIndexRequest request = new CreateIndexRequest("name");
    // 2.準備請求的參數(shù):DSL語句
    request.source(MAPPING_TEMPLATE, XContentType.JSON);
    // 3.發(fā)送請求
    CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);

    tearDown();

    return createIndexResponse.isAcknowledged() ? "創(chuàng)建成功" : "創(chuàng)建失敗";
}

3. 測試索引庫存在不存在

@RequestMapping("/testExistsHotelIndex/{indexName}")
public String testExistsHotelIndex(@PathVariable("indexName") String indexName) throws IOException {

	setUp();
	
	// 1.創(chuàng)建Request對象
	GetIndexRequest request = new GetIndexRequest(indexName);
	// 2.發(fā)送請求
	boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
	
	tearDown();
	
	return exists ? "索引庫已經(jīng)存在!" : "索引庫不存在!";
}

4. 刪除索引庫

@RequestMapping("/testDeleteHotelIndex")
void testDeleteHotelIndex() throws IOException {
    setUp();
    // 1.創(chuàng)建Request對象
    DeleteIndexRequest request = new DeleteIndexRequest("索引名稱");
    // 2.發(fā)送請求
    client.indices().delete(request, RequestOptions.DEFAULT);
    tearDown();
}

5. 遍歷導入數(shù)據(jù)

不建議遍歷導入,這樣效率低低

@RequestMapping("/addAll")
public List<HotelDoc> addAll() throws IOException {
    List<Hotel> list = hotelService.list();
    List<HotelDoc> docList = list.stream().map(p -> new HotelDoc(p)).collect(Collectors.toList());

    setUp();

    for (HotelDoc hotelDoc : docList) {
        String jsonString = JSON.toJSONString(hotelDoc);
        // 1.準備Request對象
        IndexRequest request = new IndexRequest("索引名稱").id(hotelDoc.getId().toString());
        // 2.準備Json文檔
        request.source(jsonString, XContentType.JSON);
        // 3.發(fā)送請求
        IndexResponse index = client.index(request, RequestOptions.DEFAULT);
        System.out.println(hotelDoc.getName() + ":" + index.status());
    }

    tearDown();
    return null;
}

6. 批量導入數(shù)據(jù)(推薦)

@RequestMapping("/testBulkRequest")
public void testBulkRequest() throws IOException {
	List<Hotel> hotels = hotelService.list();
	
	setUp();
	
	// 1.創(chuàng)建Request
	BulkRequest request = new BulkRequest();
	// 2.準備參數(shù),添加多個新增的Request
	for (Hotel hotel : hotels) {
		// 2.1.轉換為文檔類型HotelDoc
		HotelDoc hotelDoc = new HotelDoc(hotel);
		// 2.2.創(chuàng)建新增文檔的Request對象
		request.add(new IndexRequest("索引名稱")
			.id(hotelDoc.getId().toString())
			.source(JSON.toJSONString(hotelDoc), XContentType.JSON));
	}
	// 3.發(fā)送請求
	client.bulk(request, RequestOptions.DEFAULT);
	
	tearDown();
}


SpringBoot 實現(xiàn) elasticsearch 索引操作(RestHighLevelClient 的應用)文章來源地址http://www.zghlxwxcb.cn/news/detail-507030.html

到了這里,關于SpringBoot 實現(xiàn) elasticsearch 索引操作(RestHighLevelClient 的應用)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SpringBoot整合RestHighLevelClient實現(xiàn)查詢操作

    ?? @ 作者: 一恍過去 ?? @ 主頁: https://blog.csdn.net/zhuocailing3390 ?? @ 社區(qū): Java技術棧交流 ?? @ 主題: SpringBoot整合RestHighLevelClient實現(xiàn)查詢操作 ?? @ 創(chuàng)作時間: 2022年08月14日 為了方便查詢操作,創(chuàng)建索引叫做: nba ,并且添加數(shù)據(jù),http請求如下: 結果: term 查詢被用于

    2024年02月04日
    瀏覽(15)
  • 【Elasticsearch學習筆記五】es常用的JAVA API、es整合SpringBoot項目中使用、利用JAVA代碼操作es、RestHighLevelClient客戶端對象

    目錄 一、Maven項目集成Easticsearch 1)客戶端對象 2)索引操作 3)文檔操作 4)高級查詢 二、springboot項目集成Spring Data操作Elasticsearch 1)pom文件 2)yaml 3)數(shù)據(jù)實體類 4)配置類 5)Dao數(shù)據(jù)訪問對象 6)索引操作 7)文檔操作 8)文檔搜索 三、springboot項目集成bboss操作elasticsearch

    2023年04月09日
    瀏覽(37)
  • 【SpringBoot】整合Elasticsearch 操作索引及文檔

    【SpringBoot】整合Elasticsearch 操作索引及文檔

    官網(wǎng)操作文檔:Elasticsearch Clients | Elastic ????? ???????? 踩坑太多了。。。這里表明一下Spring Boot2.4以上版本可能會出現(xiàn)問題,所以我降到了2.2.1.RELEASE。對于現(xiàn)在2023年6月而言,Es版本已經(jīng)到了8.8,而SpringBoot版本已經(jīng)到了3.x版本。如果是高版本的Boot在配置類的時候會發(fā)現(xiàn)

    2024年02月09日
    瀏覽(58)
  • Elasticsearch-RestHighLevelClient基礎操作

    該篇文章參考下面博主文章 Java中ElasticSearch的各種查詢(普通,模糊,前綴,高亮,聚合,范圍) 【es】java使用es中三種查詢用法from size、search after、scroll 刪除索引會把索引中已經(jīng)創(chuàng)建好的數(shù)據(jù)也刪除,就好像我們在mysql中刪除庫,會把庫的數(shù)據(jù)也刪除掉一樣。 類似關閉數(shù)據(jù)

    2024年02月08日
    瀏覽(25)
  • Elasticsearch8.8.0 SpringBoot實戰(zhàn)操作各種案例(索引操作、聚合、復雜查詢、嵌套等)

    Elasticsearch8.8.0 全網(wǎng)最新版教程 從入門到精通 通俗易懂 引入依賴 添加配置文件 application.yaml 導入ca證書到項目中 從任意一個es容器中,拷貝證書到resources目錄下 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EXytUrDp-1691330960034)(media/16912196423122/16

    2024年02月13日
    瀏覽(29)
  • SpringBoot+Elasticsearch使用resthighlevelclient對象刪除指定的文檔數(shù)據(jù)

    使用客戶端刪除 在 Kibana 中,你可以使用 Dev Tools 或者 Console 來執(zhí)行 Elasticsearch 查詢和刪除操作。 ? 以下是一個使用 Dev Tools 執(zhí)行刪除文檔的示例: ? 1.打開 Kibana,轉到左側導航欄的 “Dev Tools” 或者 “Console”。 ? 2.在 Dev Tools 或者 Console 中輸入如下刪除請求: 請?zhí)鎿Q /

    2024年01月23日
    瀏覽(22)
  • SpringBoot+Elasticsearch使用resthighlevelclient對象查詢條件為“且+或”

    查詢年齡為15或者16或者17或者18的且班級為1班的學生信息 首先,確保您的項目中包含了 Elasticsearch 的依賴: 然后,您可以創(chuàng)建一個包含查詢邏輯的服務類。假設您有一個名為 StudentService 的服務類: 在上述代碼中,您需要替換 your_index_name 為實際的 Elasticsearch 索引名稱,并根

    2024年01月25日
    瀏覽(23)
  • 項目中使用es(二):使用RestHighLevelClient操作elasticsearch

    寫在前面 之前寫了有關elasticsearch的搭建和使用springboot操作elasticsearch,這次主要簡單說下使用RestHighLevelClient工具包操作es。 搭建環(huán)境和選擇合適的版本 環(huán)境還是以springboot2.7.12為基礎搭建的,不過這不重要,因為這次想說的是RestHighLevelClient操作elasticsearch,RestHighLevelClient版本

    2024年02月14日
    瀏覽(26)
  • SpringBoot+Elasticsearch按日期實現(xiàn)動態(tài)創(chuàng)建索引(分表)

    SpringBoot+Elasticsearch按日期實現(xiàn)動態(tài)創(chuàng)建索引(分表)

    ?? @ 作者: 一恍過去 ?? @ 主頁: https://blog.csdn.net/zhuocailing3390 ?? @ 社區(qū): Java技術棧交流 ?? @ 主題: SpringBoot+Elasticsearch按日期實現(xiàn)動態(tài)創(chuàng)建索引(分表) ?? @ 創(chuàng)作時間: 2023年02月19日 SpringBoot+Elasticsearch,通過 @Document 注解,利用EL表達式指定到配置文件,實現(xiàn)動態(tài)生成

    2023年04月08日
    瀏覽(19)
  • ElasticSearch系列 - SpringBoot整合ES:restHighLevelClient.count(countRequest, RequestOptions.DEFAULT)

    restHighLevelClient.count(countRequest, RequestOptions.DEFAULT) 是 Elasticsearch Java High Level REST Client 中用于執(zhí)行計數(shù)請求的方法。 具體來說,它接受兩個參數(shù): countRequest:一個 CountRequest 對象,表示計數(shù)請求的參數(shù),包括要計數(shù)的索引、查詢條件等。 RequestOptions.DEFAULT:一個 RequestOptions 對象

    2024年02月08日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包