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

springboot集成es詳解

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

1.導入 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類 相當于 xlm導入文檔

@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í)行請求 獲得響應
    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ù) 第一 要設置實體類 導入阿里巴巴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");
    //設置規(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);
    //獲取響應結果
    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"); //設置超時時間
    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(); //大批量導入數(shù)據(jù) 本質是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(); //設置分頁
//     searchSourceBuilder.size();
     searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));//設置高并發(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());

    }
  } 

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

相關文章

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

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

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

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

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

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

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

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

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

    java多線程并發(fā)executorservice(任務調度)類

    這篇文章主要介紹了線程并發(fā)ScheduledExecutorService類,設置 ScheduledExecutorService ,2秒后,在 1 分鐘內每 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)建和銷毀相對應,下面我將詳細介紹它們的特點和生命周期,需要的朋友可以參考下
    2023-07-07
  • 圖文詳解Maven工程打jar包的N種方式

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

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

    Java Spring 聲明式事務詳解

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

    Java基礎之多線程

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

最新評論

剑阁县| 巴马| 商河县| 白山市| 离岛区| 石狮市| 登封市| 丹棱县| 四平市| 三明市| 扬州市| 从江县| 壶关县| 射阳县| 沛县| 将乐县| 芦山县| 孟津县| 西平县| 会昌县| 焦作市| 德安县| 宁德市| 嘉鱼县| 九台市| 夏河县| 谢通门县| 苍南县| 富平县| 攀枝花市| 五大连池市| 衡东县| 治多县| 新余市| 上思县| 商南县| 河池市| 张家港市| 同心县| 贵定县| 绥德县|