最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot集成es詳解

 更新時間:2020年11月03日 14:34:15   作者:qq_43381763  
這篇文章主要介紹了springboot集成es,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.導(dǎo)入 maven依賴

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-dataelasticsearch</artifactId>
<dependency>

注意 保持版本一致 我用的是7.6.2版本的

<properties>
      <java.version>1.8</java.version>
       <elasticsearch.version>7.6.2</elasticsearch.version>
     <!--自定義版本 保持版本一致-->
    </properties>

2.編寫config類 相當(dāng)于 xlm導(dǎo)入文檔

@Configuration
public class ESConfig {

  @Bean
  public RestHighLevelClient restHighLevelClient (){
    RestHighLevelClient restHighLevelClient = new RestHighLevelClient(
        RestClient.builder(
            new HttpHost("localhost",9100,"http")
        )
    );
    return restHighLevelClient;
  }

注意這里的端口號 一定不能搞錯

3測試書寫 添加 索引

@Test
  void contextLoads() throws IOException {

    //1.創(chuàng)建索引的請求
    CreateIndexRequest createIndexRequest = new CreateIndexRequest("mao");
    //2.執(zhí)行請求 獲得響應(yīng)
    CreateIndexResponse createIndexResponse = estHighLevelClient.indices().create(createIndexRequest, RequestOptions.DEFAULT);
    System.out.println(createIndexResponse);
  }

4.查詢索引是否存在

@Test //查詢索引是否存在
  void existIndex() throws IOException {
    GetIndexRequest getIndexRequest = new GetIndexRequest("test"); //獲得索引請求
    boolean exists = estHighLevelClient.indices().exists(getIndexRequest, RequestOptions.DEFAULT);
    System.out.println(exists);
  }

5.刪除索引

@Test//刪除
  void delIndex() throws IOException {
    DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("test");
    AcknowledgedResponse delete = estHighLevelClient.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
    System.out.println(delete);
    System.out.println(delete.isAcknowledged());
  }

6.添加文檔數(shù)據(jù) 第一 要設(shè)置實體類 導(dǎo)入阿里巴巴JSON 工具類

 @Data
@Accessors(chain = true) //實體類

public class User {
  private String name;
  private String age;
}
@Test //添加文檔
  void addDocument() throws IOException {
    //創(chuàng)建對象啊
    User user = new User().setAge("13").setName("mao");
    //創(chuàng)建請求
    IndexRequest request = new IndexRequest("mao");
    //設(shè)置規(guī)則 PUT /test/_doc/id
    request.id("1");
    request.timeout("1s");
    //將請求放入josn
    request.source(JSON.toJSONString(user),XContentType.JSON);
    //客戶端發(fā)送請求
    IndexResponse index = estHighLevelClient.index(request, RequestOptions.DEFAULT);
    //獲取響應(yīng)結(jié)果
    System.out.println(index.toString());
    System.out.println(index.status());
 <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.47</version>
    </dependency>

7.修改文檔

@Test //Update 文檔操作
  void GengXin() throws IOException {
    UpdateRequest updateRequest = new UpdateRequest("mao","1"); //請求更新文檔
    updateRequest.timeout("1s"); //設(shè)置超時時間
    User user= new User().setName("張三").setAge("26");
    updateRequest.doc(JSON.toJSONString(user),XContentType.JSON); //將對象封裝丟進去 XContentType方法 將要傳輸?shù)臄?shù)據(jù)進行告知
    UpdateResponse update = estHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);//發(fā)送請求
    System.out.println(update);
  }

8.批量增加

@Test //批量丟入數(shù)據(jù)
  void TestBulkIndexRequest() throws IOException {
    BulkRequest bulkRequest = new BulkRequest(); //大批量導(dǎo)入數(shù)據(jù) 本質(zhì)是for循環(huán)
    bulkRequest.timeout("10s");
    ArrayList<User> users = new ArrayList<>();
    for(int i=0;i<10;i++){
      users.add(new User().setName("張三"+i+"號").setAge(""+i));
    }

    //批處理請求
    for(int i =0;i<users.size();i++){
      bulkRequest.add(
          new IndexRequest("mao")
          .id(""+(i+1))
          .source(JSON.toJSONString(users.get(i)),XContentType.JSON)
      );

    }
    BulkResponse bulk = estHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
    System.out.println(bulk);
    System.out.println(bulk.hasFailures());//查詢是否失敗

  }

9.精確查詢

 @Test//查詢
  void testSearch() throws IOException {
    SearchRequest searchRequest = new SearchRequest(ESConstant.ESConstant);
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    //精確查詢條件


    TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("age", "0");
    //查詢所有
//    MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
     searchSourceBuilder.query(termQueryBuilder) ;//將規(guī)則加入
//     searchSourceBuilder.from(); //設(shè)置分頁
//     searchSourceBuilder.size();
     searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));//設(shè)置高并發(fā)下的延遲時間
     searchSourceBuilder.highlighter();
     searchRequest.source(searchSourceBuilder);//將剛剛做的請求體放入
    SearchResponse search = estHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);//請求信息
    System.out.println(JSON.toJSONString(search.getHits()));//返回查詢情況 getHits 封裝返回對象

    for( SearchHit SearchHit:search.getHits().getHits() ){
      System.out.println(SearchHit.getSourceAsMap());

    }
  } 

到此這篇關(guān)于springboot集成es詳解的文章就介紹到這了,更多相關(guān)springboot集成es內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)和普通代碼塊的區(qū)別

    Java中靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)和普通代碼塊的區(qū)別

    在Java中,靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)、普通代碼塊的執(zhí)行順序是一個筆試的考點,通過這篇文章希望大家能徹底了解它們之間的執(zhí)行順序,需要的朋友可以參考下
    2023-05-05
  • 使用@Value值注入及配置文件組件掃描

    使用@Value值注入及配置文件組件掃描

    這篇文章主要介紹了使用@Value值注入及配置文件組件掃描方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • IntelliJIDEA中實現(xiàn)SpringBoot多實例運行的兩種方式

    IntelliJIDEA中實現(xiàn)SpringBoot多實例運行的兩種方式

    在微服務(wù)開發(fā)中,經(jīng)常需要同時啟動多個服務(wù)實例進行測試或模擬集群環(huán)境,?IntelliJ?IDEA?作為Java開發(fā)者常用工具,提供了靈活的多實例啟動支持,本文將詳細介紹如何通過修改配置?和批量啟動?兩種方式實現(xiàn)SpringBoot多實例運行,并解決常見問題,需要的朋友可以參考下
    2025-03-03
  • SpringBoot實現(xiàn)Excel文件批量上傳導(dǎo)入數(shù)據(jù)庫

    SpringBoot實現(xiàn)Excel文件批量上傳導(dǎo)入數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)Excel文件批量上傳導(dǎo)入數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • java多線程并發(fā)executorservice(任務(wù)調(diào)度)類

    java多線程并發(fā)executorservice(任務(wù)調(diào)度)類

    這篇文章主要介紹了線程并發(fā)ScheduledExecutorService類,設(shè)置 ScheduledExecutorService ,2秒后,在 1 分鐘內(nèi)每 10 秒鐘蜂鳴一次
    2014-01-01
  • 探討如何在Eclipse中過濾版本控制文件.svn

    探討如何在Eclipse中過濾版本控制文件.svn

    本篇文章是對在Eclipse中過濾版本控制文件.svn的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • 深度剖析Java成員變量、局部變量和靜態(tài)變量的創(chuàng)建和回收時機

    深度剖析Java成員變量、局部變量和靜態(tài)變量的創(chuàng)建和回收時機

    這篇文章主要介紹了深度剖析Java成員變量、局部變量和靜態(tài)變量的創(chuàng)建和回收時機,成員變量是定義在類中的變量,每個類的實例都會擁有自己的成員變量。它們的生命周期與對象的創(chuàng)建和銷毀相對應(yīng),下面我將詳細介紹它們的特點和生命周期,需要的朋友可以參考下
    2023-07-07
  • 圖文詳解Maven工程打jar包的N種方式

    圖文詳解Maven工程打jar包的N種方式

    最近在打包maven項目時,該項目中僅有一個測試類,想打成jar包運行測試,所以下面這篇文章主要給大家介紹了關(guān)于Maven工程打jar包的N種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Java Spring 聲明式事務(wù)詳解

    Java Spring 聲明式事務(wù)詳解

    這篇文章主要介紹了spring 聲明式事務(wù)實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-09-09
  • Java基礎(chǔ)之多線程

    Java基礎(chǔ)之多線程

    以下是我們Java基礎(chǔ)多線程的一些知識點總結(jié),看完以后會覺得多線程也可以這么簡單,小編精心推薦,希望能對大家有所幫助
    2018-09-09

最新評論

江川县| 遂川县| 阳春市| 溆浦县| 肇州县| 鄄城县| 长葛市| 社旗县| 乐都县| 习水县| 叙永县| 鄂州市| 广昌县| 邢台县| 吐鲁番市| 介休市| 新疆| 安义县| 太康县| 阿坝县| 多伦县| 云梦县| 竹山县| 阿拉尔市| 康定县| 织金县| 文山县| 宁晋县| 海晏县| 清镇市| 大同县| 凉城县| 仪陇县| 四川省| 白水县| 噶尔县| 台东市| 合江县| 常州市| 德州市| 山阴县|