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

SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢)

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢)


章節(jié)
第一章鏈接: SpringBoot集成Elasticsearch7.x(1)|(增刪改查功能實(shí)現(xiàn))
第二章鏈接: SpringBoot集成Elasticsearch7.x(2)|(復(fù)雜查詢)
第三章鏈接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢)
第四章鏈接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合查詢)
第五章鏈接: SpringBoot集成Elasticsearch7.x(5)|(term、match、match_phrase區(qū)別)
第六章鏈接: SpringBoot集成Elasticsearch8.x(6)|(新版本Java API Client使用)
第七章鏈接: SpringBoot集成Elasticsearch8.x(7)|(新版本Java API Client使用完整示例)

前言

本章節(jié)主要介紹SpringBoot項(xiàng)目集成ElasticSearch的一些相關(guān)知識(shí),主要介紹的是基于Java High Level REST Client方式實(shí)現(xiàn)ElasticSearch分組聚合(aggregations)查詢操作以及對(duì)應(yīng)kibana控制臺(tái)JSON格式訪問對(duì)照。

一、ElasticSearch中Aggs是什么?

es的aggs可以分為 指標(biāo)聚合(metrice)、分桶聚合(bucket)、 管道聚合(pipeline),分通聚合相當(dāng)于sql的group by 能按照某一個(gè)或多個(gè)條件,對(duì)數(shù)據(jù)進(jìn)行分桶(分組),默認(rèn)返回?cái)?shù)據(jù)的count(計(jì)數(shù))條數(shù),但實(shí)際上,可以理解為數(shù)據(jù)被分桶了,方便后面的聚合或者統(tǒng)計(jì)操作。指標(biāo)聚合就是對(duì)分桶,或者未分桶的數(shù)據(jù)進(jìn)行計(jì)算,例如avg求平均值,MAX最大值,min最小值,value count 計(jì)數(shù) cardinality 基數(shù) 去重 starts 統(tǒng)計(jì)聚合等。管道聚合基于聚合結(jié)果的查詢,分桶有可能是多層的,也有可能和指標(biāo)是仙桃的,管道聚合可以根據(jù)路徑(分桶和指標(biāo)聚合時(shí)候的命名路徑)對(duì)數(shù)據(jù)進(jìn)行有針對(duì)性的操作,例如排序。

二、指標(biāo)聚合查詢

1.求和(sum)

查詢所有城市景點(diǎn)票價(jià)總和

GET /architecture_index/_search 
{
  "size": 0, 
  "aggs": {
    "sum_price": {
      "sum": {
        "field": "price"
      }
    }
  }
}

實(shí)現(xiàn)代碼如下

      /**
     * 聚合查詢所有景點(diǎn)門票和
     * @throws IOException
     */
    @Test
    public void searchSum() throws IOException {
        //定義請求對(duì)象
        SearchRequest request = new SearchRequest("architecture_index");
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

        //制定檢索條件
        sourceBuilder.query(QueryBuilders.matchAllQuery())
                .aggregation(AggregationBuilders.sum("sum_price").field("price"));
        //組裝
        request.source(sourceBuilder);
        //執(zhí)行
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);

        //打印數(shù)據(jù)
        Aggregations aggregations = response.getAggregations();
        System.out.println(JSON.toJSONString(aggregations.getAsMap().get("sum_price")));
    }

2.求總數(shù)(count)

查詢所有城市景點(diǎn)票價(jià)總和

GET /architecture_index/_search 
{
  "size": 0, 
  "aggs": {
    "count_name": {
      "value_count": {
        "field": "name.keyword"
      }
    }
  }
}

實(shí)現(xiàn)代碼如下

      /**
     * 聚合查詢所有景點(diǎn)總數(shù)
     * @throws IOException
     */
    @Test
    public void searchCount() throws IOException {
        //定義請求對(duì)象
        SearchRequest request = new SearchRequest("architecture_index");
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

        //制定檢索條件
        sourceBuilder.query(QueryBuilders.matchAllQuery())
                .aggregation(AggregationBuilders.count("count_name").field("name.keyword"));
        //組裝
        request.source(sourceBuilder);
        //執(zhí)行
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);

        //打印數(shù)據(jù)
        Aggregations aggregations = response.getAggregations();
        System.out.println(JSON.toJSONString(aggregations.getAsMap().get("count_name")));
    }

3.stats聚合

針對(duì)數(shù)字類型的查詢,一次性查詢出最低、最高、總和、總數(shù)量、平均值等

GET /architecture_index/_search 
{
  "size": 0, 
  "aggs": {
    "status_price": {
      "stats": {
        "field": "price"
      }
    }
  }
}

實(shí)現(xiàn)代碼如下

      /**
     * 查詢門票價(jià)格 最大值,最小值,平均值等
     * @throws IOException
     */
    @Test
    public void searchStats() throws IOException {
        //定義請求對(duì)象
        SearchRequest request = new SearchRequest("architecture_index");
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

        //制定檢索條件
        sourceBuilder.query(QueryBuilders.matchAllQuery())
                .aggregation(AggregationBuilders.stats("status_price").field("price"));
        //組裝
        request.source(sourceBuilder);
        //執(zhí)行
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);

        //打印數(shù)據(jù)
        Aggregations aggregations = response.getAggregations();
        System.out.println(JSON.toJSONString(aggregations.getAsMap().get("status_price")));
    }

3.stats聚合

只統(tǒng)計(jì)總數(shù)、平均值

  GET /architecture_index/_search 
  {
    "size": 0, 
    "aggs": {
      "count_name": {
        "value_count": {
          "field": "name.keyword"
        }
      },
      "avg_price": {
        "avg": {
          "field": "price"
        }
      }
    }
  }

實(shí)現(xiàn)代碼如下

    /**
     * 求和 以及求平均值
     * @throws IOException
     */
    @Test
    public void search2() throws IOException {
        //定義請求對(duì)象
        SearchRequest request = new SearchRequest("architecture_index");
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

        //制定檢索條件
        sourceBuilder.query(QueryBuilders.matchAllQuery())
                .aggregation(AggregationBuilders.count("count_name").field("name.keyword"))
                .aggregation(AggregationBuilders.avg("avg_price").field("price"));
        //組裝
        request.source(sourceBuilder);
        //執(zhí)行
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);

        //打印數(shù)據(jù)
        Aggregations aggregations = response.getAggregations();
        System.out.println(JSON.toJSONString(aggregations.getAsMap().get("count_name")));
        System.out.println(JSON.toJSONString(aggregations.getAsMap().get("avg_price")));
    }

總結(jié)

以上就是SpringBoot集成Elasticsearch數(shù)據(jù)庫內(nèi)容,在驗(yàn)證過程中遇到很多問題,如果大家在使用過程中遇到問題歡迎留言。文章來源地址http://www.zghlxwxcb.cn/news/detail-452002.html

到了這里,關(guān)于SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Spring boot 2.3.12集成ElasticSearch7.6.2并進(jìn)行CRUD

    Spring boot 2.3.12集成ElasticSearch7.6.2并進(jìn)行CRUD

    本篇博客主要講解Spring boot 2.3.12集成ElasticSearch7.6.2并進(jìn)行CRUD操作。其它版本的spring boot集成ElasticSearch類似,只需要具體各自的版本是否匹配。通過本篇博客能夠成功集成ElasticSearch并進(jìn)行CRUD操作,適合剛接觸ElasticSearch需要進(jìn)行簡單CRUD操作的讀者。 在集成ElasticSearch之前需要明

    2023年04月08日
    瀏覽(21)
  • SpringBoot3 整合 ElasticSearch7 示例

    SpringBoot3 整合 ElasticSearch7 示例

    做仿??晚?xiàng)目需要使用 es 做搜索,但是老師示例的是 SpringBoot2 + es6 去做的,然而我用的是 Spring3 + es7.17.10,于是踩了很多的坑。 在 es7 中,配置文件和查詢所需的實(shí)現(xiàn)類都做了很大的改動(dòng),我以能成功運(yùn)行的代碼為例,大概說一下怎么配置和使用。 首先 yml 配置文件發(fā)生了變

    2024年02月07日
    瀏覽(29)
  • 【SpringBoot整合ElasticSearch7.x及實(shí)戰(zhàn)】

    【SpringBoot整合ElasticSearch7.x及實(shí)戰(zhàn)】

    此筆記內(nèi)容為狂神說SpringBoot整合ElasticSearch部分 目錄 一、SpringBoot整合 1、創(chuàng)建工程 2、導(dǎo)入依賴 導(dǎo)入elasticsearch依賴 提前導(dǎo)入fastjson、lombok 3、創(chuàng)建并編寫配置類 4、創(chuàng)建并編寫實(shí)體類 5、測試 索引的操作 文檔的操作 二、ElasticSearch實(shí)戰(zhàn) 防京東商城搜索(高亮) 1、工程創(chuàng)建(

    2024年02月08日
    瀏覽(18)
  • Java + SpringBoot 操作 ElasticSearch7.x.x工具類RestHighLevelClientUtils

    ElasticSearch創(chuàng)建索引,刪除索引,判斷 index 是否存在,根據(jù) id 刪除指定索引中的文檔, 根據(jù) id 更新指定索引中的文檔,根據(jù) id 更新指定索引中的文檔,根據(jù)某字段的 k-v 更新索引中的文檔, 添加文檔 手動(dòng)指定id,簡單模糊匹配 默認(rèn)分頁為 0,10, term 查詢 精準(zhǔn)匹配,term 查詢

    2024年02月13日
    瀏覽(20)
  • 【SpringBoot】SpringBoot集成ElasticSearch

    【SpringBoot】SpringBoot集成ElasticSearch

    這段代碼是一個(gè)基本的 Elasticsearch Java 客戶端的配置類,用于創(chuàng)建一個(gè) RestHighLevelClient 實(shí)例。 其中 RestHighLevelClient 是 Elasticsearch Java 客戶端的高級(jí)別別名,是基于 LowLevelClient 之上的封裝,提供了一些更加方便的方法和功能。 在這段代碼中,使用了 @Value 注解來注入三個(gè)配置項(xiàng)

    2024年02月04日
    瀏覽(23)
  • SpringBoot集成 ElasticSearch

    SpringBoot集成 ElasticSearch

    對(duì)于ElasticSearch比較陌生的小伙伴可以先看看ElasticSearch的概述ElasticSearch安裝、啟動(dòng)、操作及概念簡介 好的開始啦~ 1.1、導(dǎo)入依賴 新版本配置方式(推薦使用) 新的配置方式使用的是 High Level REST Client 的方式來替代之前的 Transport Client 方式,使用的是 HTTP 請求,和 Kibana 一樣使

    2023年04月20日
    瀏覽(23)
  • SpringBoot集成ElasticSearch

    SpringBoot集成ElasticSearch

    實(shí)現(xiàn)搜索并高亮 在線體驗(yàn):http://www.sixkey-world.top

    2024年03月17日
    瀏覽(29)
  • SpringBoot 集成 Elasticsearch

    SpringBoot 集成 Elasticsearch

    版本說明詳見 Elasticsearch 下載 kibana下載 ik分詞器下載 2.1 解壓,在elasticsearch-7.8.0plugins 路徑下新建ik目錄 2.2 將ik分詞器解壓放入ik目錄 2.3 擴(kuò)展詞匯測試示例 2.3.1 ik/config 目錄下新建custom.dic文件 2.3.2 編輯custom.dic文件,加入新詞匯 注意:custom.dic文件內(nèi)容的格式的編碼為UTF-8格

    2024年02月14日
    瀏覽(23)
  • ElasticSearch集成SpringBoot實(shí)踐

    ElasticSearch集成SpringBoot實(shí)踐

    Search API Search Request,用于搜索文檔,聚合,相關(guān)的任何操作,還提供了高亮顯示結(jié)果文檔的方法 使用SearchSourceBuilder,大多數(shù)控制搜索行為的選項(xiàng)都可以在SearchSourceBuilder上設(shè)置 構(gòu)建查詢,搜索查詢是使用QueryBuilder對(duì)象創(chuàng)建的,ES的查詢DSL支持的每一種搜索查詢類型都有一個(gè)

    2024年02月03日
    瀏覽(18)
  • 六、SpringBoot集成elasticsearch

    目錄 官網(wǎng)API介紹 1、新建maven項(xiàng)目 2、檢查elasticsearch依賴的版本 3、配置RestHighLevelClient對(duì)象 4、使用springboot-test測試API的使用 Java API Client https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/index.html Java REST Client(rest-high-level-client): https://www.elastic.co/guide/en/elasticsearc

    2024年02月09日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包