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

es相關(guān)的官方客戶端與spring客戶端對(duì)比與介紹

這篇具有很好參考價(jià)值的文章主要介紹了es相關(guān)的官方客戶端與spring客戶端對(duì)比與介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1. 客戶端版本種類

  1. es提供的

    1. TransportClient
      1. 傳統(tǒng)的客戶端,基于TCP傳輸協(xié)議與Elasticsearch通信。
      2. 已經(jīng)被棄用,不推薦使用。
        1. 適用于Elasticsearch 5.x及以前的版本
        2. 因?yàn)镋lasticsearch 6.x及以上版本已不再支持TCP Transport協(xié)議,TransportClient無(wú)法連接Elasticsearch集群。
    2. RestHighLevelClient
      1. 是一個(gè)高級(jí)的REST客戶端,主要用于與Elasticsearch集群通信。
      2. 基于Java Low Level REST Client構(gòu)建,提供更高級(jí)的API,隱藏底層細(xì)節(jié)。
      3. 主要用于Kibana和Logstash等工具。
      4. RestHighLevelClient適用于Elasticsearch 6.2.0及以上版本。
  2. spring提供的

    1. ES存儲(chǔ)庫(kù)操作:簡(jiǎn)單的CRUD
      1. 特點(diǎn)
        1. 當(dāng)你需要進(jìn)行簡(jiǎn)單的CRUD操作(創(chuàng)建、讀取、更新、刪除文檔)時(shí),使用ES存儲(chǔ)庫(kù)操作是一個(gè)不錯(cuò)的選擇。
        2. 這是因?yàn)镾pring Data Elasticsearch會(huì)自動(dòng)生成存儲(chǔ)庫(kù)接口的實(shí)現(xiàn),從而使你的代碼更簡(jiǎn)潔、易于理解。
    2. ElasticsearchTemplate
      1. 基于ElasticsearchRestTemplate封裝,提供更高級(jí)的API,如各種CRUD操作。
      2. 也需要依賴Spring Framework。
    3. ElasticsearchRestTemplate
      1. 是一個(gè)Spring的RestTemplate的擴(kuò)展,用于與Elasticsearch RESTful API交互。
      2. 基于Spring的RestTemplate,提供Elasticsearch的自動(dòng)化JSON序列化和反序列化。
      3. 需要依賴Spring Framework。
    4. ElasticsearchOperations:接口實(shí)現(xiàn)
    5. 使用選擇
      1. 如果需要更多spring集成相關(guān)的功能,則使用ElasticsearchTemplate。
      2. 如果需要直接訪問(wèn)Elasticsearch RESTful接口,則使用ElasticsearchRestTemplate。
      3. 性能和功能上,ElasticsearchTemplate略勝一籌。

2. spring的相關(guān)操作客戶端

2.1 ES存儲(chǔ)庫(kù)操作:簡(jiǎn)單的CRUD

  1. 特點(diǎn)

    1. 當(dāng)你需要進(jìn)行簡(jiǎn)單的CRUD操作(創(chuàng)建、讀取、更新、刪除文檔)時(shí),使用ES存儲(chǔ)庫(kù)操作是一個(gè)不錯(cuò)的選擇。
    2. 這是因?yàn)镾pring Data Elasticsearch會(huì)自動(dòng)生成存儲(chǔ)庫(kù)接口的實(shí)現(xiàn),從而使你的代碼更簡(jiǎn)潔、易于理解。
  2. 核心

    • 簡(jiǎn)單的crud操作
    • 不支持復(fù)雜的查詢檢索
  3. 使用步驟

    1. 實(shí)體類

      @Document(indexName = "encrypt_log", type = "encrypt_log")
      public class EncryptLogEntity {
        
          //對(duì)應(yīng)字段
          private String srcIp;
          private String dstIp;
          //...
          
          // getters and setters
      }
      
      
    2. 創(chuàng)建ElasticsearchRepository接口

      public interface EncryptLogRepository extends ElasticsearchRepository<EncryptLogEntity, String> {
          
      }
      
    3. 對(duì)應(yīng)的服務(wù)中注入接口,并編寫(xiě)方法

      @Autowired
      private MyDocumentRepository myDocumentRepository;
      
      // 創(chuàng)建文檔
      myDocumentRepository.save(document);
      
      // 讀取文檔
      MyDocument document = myDocumentRepository.findById(id).orElse(null);
      
      // 更新文檔
      myDocumentRepository.save(updatedDocument);
      
      // 刪除文檔
      myDocumentRepository.deleteById(id);
      

2.2 ElasticsearchTemplate:復(fù)雜的操作:增刪改查

  1. 特點(diǎn)

    1. 當(dāng)你需要執(zhí)行更復(fù)雜的查詢、聚合操作,或者需要使用一些特定的Elasticsearch功能時(shí),使用ElasticsearchTemplate可能是一個(gè)更好的選擇。
    2. 基于 Transport Client與ES交互。
  2. 核心

    • 更復(fù)雜的查詢、聚合操作 -> ElasticsearchTemplate
    • 需要更簡(jiǎn)單、方便地集成ES時(shí),可以使用ElasticsearchTemplate。
  3. 使用

    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;
    
    // 構(gòu)建查詢
    QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", "example");
    
    // 執(zhí)行查詢
    SearchHits<MyDocument> searchHits = elasticsearchTemplate.search(new NativeSearchQueryBuilder()
            .withQuery(queryBuilder)
            .build(), MyDocument.class);
    
    
  4. 簡(jiǎn)單查詢例子

    @Autowired
    private ElasticsearchTemplate esTemplate;
    
    List<Map<String, Object>> documents = ...
    esTemplate.bulkIndex(documents);
    

2.3 ElasticsearchRestTemplate:跨節(jié)點(diǎn)的搜索查詢

  1. 特點(diǎn)

    • 適用于更復(fù)雜的查詢操作
  2. 情景

    • 需要更高級(jí)ES功能時(shí),使用ElasticsearchRestTemplate。
    • 需要更高級(jí)ES功能時(shí),使用ElasticsearchRestTemplate。
  3. 樣例

    @Autowired
    private ElasticsearchRestTemplate esRestTemplate;
    
    List<Map<String, Object>> documents = ...
    esRestTemplate.bulkIndex(documents, Map.class);  
    
    SearchQuery searchQuery = new NativeSearchQueryBuilder()
         .withQuery(matchQuery("name", "spring"))
         .build();
    List<Map> results = esRestTemplate.search(searchQuery, Map.class)
         .getContent();
    

2.4 ElasticsearchTemplate和ElasticsearchRestTemplate主要的區(qū)別在于

  1. 底層實(shí)現(xiàn):

    • ElasticsearchTemplate 底層使用 Elasticsearch Java API 實(shí)現(xiàn)。
    • ElasticsearchRestTemplate 底層使用 Elasticsearch Rest API 實(shí)現(xiàn)。
  2. 使用范圍:

    • ElasticsearchTemplate 只能在內(nèi)部使用,不支持跨節(jié)點(diǎn)操作。
    • ElasticsearchRestTemplate 支持跨節(jié)點(diǎn)操作。
  3. 功能:

    • ElasticsearchTemplate 功能更全面,支持多種操作,如索引、搜索、刪除等。
    • ElasticsearchRestTemplate 主要用于搜索。
  4. 性能:

    • ElasticsearchTemplate 性能更高,不需要經(jīng)過(guò) HTTP 請(qǐng)求。
    • ElasticsearchRestTemplate 需要通過(guò) HTTP 請(qǐng)求,性能相對(duì)較低。
  5. 復(fù)雜度:

    • ElasticsearchTemplate 復(fù)雜度較高,需要深入理解 Elasticsearch Java API。
    • ElasticsearchRestTemplate 復(fù)雜度較低,只需要理解 Elasticsearch 的 REST API。
  6. 總的來(lái)說(shuō):

    • 如果只在單個(gè)節(jié)點(diǎn)上操作 Elasticsearch,優(yōu)先選擇 ElasticsearchTemplate。
    • 如果需要跨節(jié)點(diǎn)操作,或者為了簡(jiǎn)單起見(jiàn),可以選擇 ElasticsearchRestTemplate。

2.4 ElasticsearchOperations:接口

  1. 特點(diǎn)

    • ElasticsearchOperations是一個(gè)接口,代表了基礎(chǔ)的Elasticsearch操作。
    • ElasticsearchTemplate是ElasticsearchOperations的一個(gè)實(shí)現(xiàn)。
  2. 功能

    1. ElasticsearchOperations定義了基本的Elasticsearch操作,如插入、查詢、刪除等。
    2. ElasticsearchTemplate實(shí)現(xiàn)了ElasticsearchOperations接口,提供了更多功能,例如:
      • 批量操作
      • 分頁(yè)查詢
      • 對(duì)復(fù)雜對(duì)象進(jìn)行轉(zhuǎn)換
      • 映射管理
      • 索引管理
  3. 使用

    1. 一般情況下,程序直接使用ElasticsearchTemplate。

    2. 在測(cè)試中,可以使用ElasticsearchOperations接口,達(dá)到分離依賴的目的。

3. 不同版本的依賴及對(duì)應(yīng)方法的選擇

  1. 進(jìn)入spring對(duì)應(yīng)的官網(wǎng)

  2. 隨便找一個(gè)api——找到歷史文檔及版本對(duì)應(yīng)版本對(duì)應(yīng)

    es spring類型,elasticsearch,java,springboot

  3. 然后找到對(duì)應(yīng)的官方操作客戶端方法

    es spring類型,elasticsearch,java,springboot文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-788398.html

4. 總結(jié)

  1. es客戶端
    1. TransportClient :已過(guò)時(shí)
    2. RestHighLevelClient:es官方推薦的版本,但有時(shí)候在spring中被廢棄
  2. spring客戶端
    1. ES存儲(chǔ)庫(kù)
      • 適用于簡(jiǎn)單的CRUD操作
      • 可閱讀性強(qiáng),操作編寫(xiě)難度麻煩
    2. ElasticsearchTemplate
      • 復(fù)雜的增刪改查操作
      • 單節(jié)點(diǎn)中使用
    3. ElasticsearchRestTemplate
      • 多節(jié)點(diǎn),和相對(duì)于ElasticsearchTemplate 更便捷的方法調(diào)用
      • 更加多樣的查詢封裝方法
    4. ElasticsearchOperations
      • 是一個(gè)接口,使用的較少

到了這里,關(guān)于es相關(guān)的官方客戶端與spring客戶端對(duì)比與介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 吾輩楷模!國(guó)人開(kāi)源的Redis客戶端被Redis官方收購(gòu)了!

    吾輩楷模!國(guó)人開(kāi)源的Redis客戶端被Redis官方收購(gòu)了!

    不久前開(kāi)源圈子里的一則消息在網(wǎng)上引起了一陣關(guān)注和討論。 一個(gè)由國(guó)人開(kāi)發(fā)者所打造的開(kāi)源項(xiàng)目被 Redis 公司官方給收購(gòu)了,作者自己也發(fā)了動(dòng)態(tài),表示感謝項(xiàng)目9年以來(lái)的陪伴,同時(shí)也希望她未來(lái)一切都好。 這個(gè)開(kāi)源項(xiàng)目的名字叫做:ioredis,相信不少小伙伴也用過(guò)。 目前

    2024年03月15日
    瀏覽(21)
  • Scala連接ES客戶端

    大家好,我是楚生輝,在未來(lái)的日子里我們一起來(lái)學(xué)習(xí)大數(shù)據(jù)相關(guān)的技術(shù),一起努力奮斗,遇見(jiàn)更好的自己! 本文詳細(xì)的介紹了如何使用Scala語(yǔ)言連接上Elasticsearch客戶端,有需要的小伙伴可以自行獲取與學(xué)習(xí)~ 使用方法 寫(xiě)入ES中,就要規(guī)劃,是寫(xiě)入到一個(gè)索引中,還是分割索

    2024年01月21日
    瀏覽(22)
  • ES客戶端RestHighLevelClient的使用

    ES客戶端RestHighLevelClient的使用

    默認(rèn)情況下,ElasticSearch使用兩個(gè)端口來(lái)監(jiān)聽(tīng)外部TCP流量。 9200端口:用于所有通過(guò)HTTP協(xié)議進(jìn)行的API調(diào)用。包括搜索、聚合、監(jiān)控、以及其他任何使用HTTP協(xié)議的請(qǐng)求。所有的客戶端庫(kù)都會(huì)使用該端口與ElasticSearch進(jìn)行交互。 9300端口:是一個(gè)自定義的二進(jìn)制協(xié)議,用于集群中各

    2024年02月03日
    瀏覽(21)
  • java用es客戶端創(chuàng)建索引

    先用java創(chuàng)建esClient 創(chuàng)建es索引模板 新建索引 批量插入數(shù)據(jù) 1.先批量生成數(shù)據(jù) 2批量導(dǎo)入方法

    2024年02月11日
    瀏覽(16)
  • 【ES實(shí)戰(zhàn)】ES創(chuàng)建Transports客戶端時(shí)間過(guò)長(zhǎng)分析

    2023年10月19日 在創(chuàng)建ES Transport客戶端的時(shí),當(dāng)出現(xiàn)以下場(chǎng)景時(shí),影響連接速度。 使用ES Transport 客戶端創(chuàng)建與集群的鏈接。 連接地址里面有不存在的IP 在增加ES節(jié)點(diǎn)時(shí),采用逐個(gè)增加的方式 整個(gè)建立鏈接的過(guò)程會(huì)非常耗時(shí)。 采用jar依賴如下 創(chuàng)建連接代碼如下 輸出結(jié)果 是否可

    2024年02月07日
    瀏覽(25)
  • ES查詢客戶端初始化(RestHighLevelClient)

    另外,如果說(shuō)把es當(dāng)成一個(gè)數(shù)據(jù)庫(kù)使用,可以看下開(kāi)源項(xiàng)目easy-es,操作更方便。文檔地址:快速開(kāi)始 | Easy-Es

    2024年02月11日
    瀏覽(20)
  • 奇安信天擎Linux客戶端部署相關(guān)事項(xiàng)

    奇安信天擎Linux客戶端部署相關(guān)事項(xiàng)

    1)通過(guò)Windows平臺(tái)瀏覽器訪問(wèn)天擎客戶端在線下載頁(yè)面:http://控制中心IP:80,獲取在線安裝包 2)在Linux系統(tǒng)下,直接使用wget命令下載在線安裝包。 wget “http://控制臺(tái)IP/download/setup/installer-linuxs(控制臺(tái)IP _80).sh” 注意端口,不同版本可能不一樣 Linux 默認(rèn)服務(wù)接入端口為 30081(或

    2024年02月03日
    瀏覽(27)
  • es最大相似度檢索(原生與java客戶端)

    原生rest: 對(duì)“不好”進(jìn)行分詞, \\\"operator\\\": \\\"and\\\" 意思是同時(shí)滿足。 結(jié)果: java RestHighLevelClient

    2024年02月11日
    瀏覽(25)
  • 袁庭新ES系列15節(jié)|Elasticsearch客戶端基礎(chǔ)操作

    袁庭新ES系列15節(jié)|Elasticsearch客戶端基礎(chǔ)操作

    上一章節(jié)我們介紹了搭建Elasticsearch集群相關(guān)的知識(shí)。那么又該如何來(lái)操作Elasticsearch集群呢?在ES官網(wǎng)中提供了各種語(yǔ)言的客戶端,我們?cè)陧?xiàng)目開(kāi)發(fā)過(guò)程中有多種Elasticsearch版本和連接客戶端可以選擇,那么他們有什么區(qū)別?這一章節(jié)袁老師帶領(lǐng)大家來(lái)學(xué)習(xí)Elasticsearch客戶端相關(guān)

    2024年04月25日
    瀏覽(25)
  • Redis客戶端介紹

    Redis客戶端介紹

    redis安裝完成后有自帶的命令行客戶端,即redis-cli,使用方式如下 options ——參數(shù) -h 127.0.0.1 :指定要連接的redis節(jié)點(diǎn)的ip地址,默認(rèn)值127.0.0.1 -p 6379 :指定要連接的redis節(jié)點(diǎn)的端口,默認(rèn)值6379 -a xxxxxx :指定redis的訪問(wèn)密碼 … commonds ——redis的操作命令 ping :心跳測(cè)試,服務(wù)器

    2024年02月06日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包