欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 通過(guò)聚合查詢實(shí)現(xiàn)elasticsearch的group by后的數(shù)量

 更新時(shí)間:2021年12月28日 10:30:02   作者:幾個(gè)Ak  
這篇文章主要介紹了java 通過(guò)聚合查詢實(shí)現(xiàn)elasticsearch的group by后的數(shù)量,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

通過(guò)聚合查詢獲取group by 后的數(shù)量

/**
     * 獲取key的個(gè)數(shù)
     *
     * @param key   要group by的字段名
     * @param index 索引名稱
     * @return id的個(gè)數(shù)
     */
    public static int getKeyCount(String key, String index) {
        int count = 0;
        TransportClient client = null;
        try {
            client = connectionPool.getConnection();
            if (client == null) {
                throw new Exception("沒有獲取到連接!");
            }
            SearchRequestBuilder search = client.prepareSearch(index);
            //cardinality聚合查詢,相當(dāng)于groupby字段名
            SearchResponse sr = search.addAggregation(AggregationBuilders.cardinality(key + "_count").field(key)).execute().actionGet();
            //從返回?cái)?shù)據(jù)提取id總數(shù)
            Cardinality result = sr.getAggregations().get(key + "_count");
            long value = result.getValue();
            count = (int) value;
        } catch (InterruptedException e) {
        } catch (Exception e) {
            logger.error("getKeyCount錯(cuò)誤", e);
        } finally {
            connectionPool.releaseConnection(client);
        }
        return count;
    }

獲取group by后的所有key值

/**
     * 獲取所有key
     *
     * @param key   被group by的字段名
     * @param index 索引名稱
     * @return 所有id
     */
    public static List<String> getAllKey(String key, String index) {
        int keyCount = getKeyCount(key, index);
        List<String> strings = new ArrayList<>();
        TransportClient client = null;
        try {
            client = connectionPool.getConnection();
            if (client == null) {
                throw new Exception("沒有獲取到數(shù)據(jù)庫(kù)連接!");
            }
            SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index);
            //使用聚合,實(shí)現(xiàn)去重查詢
            SearchResponse searchResponse = searchRequestBuilder.
                    addAggregation(AggregationBuilders.terms("models").field(key).size(keyCount)).execute().actionGet();
            Terms term = searchResponse.getAggregations().get("models");
            List<? extends Terms.Bucket> buckets = term.getBuckets();
            //遍歷結(jié)果,提取出id
            for (Terms.Bucket bucket : buckets) {
                String keyAsString = bucket.getKeyAsString();
                strings.add(keyAsString);
            }
            buckets.clear();
        } catch (InterruptedException e) {

        } catch (Exception e) {
            logger.error("getAllKey錯(cuò)誤", e);
        } finally {
            connectionPool.releaseConnection(client);
        }

        return strings;
    }

到此這篇關(guān)于Java通過(guò)聚合查詢獲取group by 后的數(shù)量的文章就介紹到這了,更多相關(guān)Java 聚合查詢獲取group by數(shù)量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Maven項(xiàng)目本地公共common包緩存問題

    解決Maven項(xiàng)目本地公共common包緩存問題

    這篇文章主要介紹了解決Maven項(xiàng)目本地公共common包緩存問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 基于注解的組件掃描詳解

    基于注解的組件掃描詳解

    這篇文章主要介紹了基于注解的組件掃描詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 詳解在Spring MVC或Spring Boot中使用Filter打印請(qǐng)求參數(shù)問題

    詳解在Spring MVC或Spring Boot中使用Filter打印請(qǐng)求參數(shù)問題

    這篇文章主要介紹了詳解在Spring MVC或Spring Boot中使用Filter打印請(qǐng)求參數(shù)問題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Spring Boot Maven插件使用詳解

    Spring Boot Maven插件使用詳解

    這篇文章主要為大家詳細(xì)介紹了Spring Boot Maven插件使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • IDEA java出現(xiàn)無(wú)效的源發(fā)行版14解決方案

    IDEA java出現(xiàn)無(wú)效的源發(fā)行版14解決方案

    這篇文章主要介紹了IDEA java出現(xiàn)無(wú)效的源發(fā)行版14解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • java微信公眾號(hào)發(fā)送消息模板

    java微信公眾號(hào)發(fā)送消息模板

    這篇文章主要為大家詳細(xì)介紹了java微信公眾號(hào)發(fā)送消息模板,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • SpringBoot項(xiàng)目在IntelliJ IDEA中如何實(shí)現(xiàn)熱部署

    SpringBoot項(xiàng)目在IntelliJ IDEA中如何實(shí)現(xiàn)熱部署

    spring-boot-devtools是一個(gè)為開發(fā)者服務(wù)的一個(gè)模塊,其中最重要的功能就是自動(dòng)應(yīng)用代碼更改到最新的App上面去。,這篇文章主要介紹了SpringBoot項(xiàng)目在IntelliJ IDEA中如何實(shí)現(xiàn)熱部署,感興趣的小伙伴們可以參考一下
    2018-07-07
  • JAVA中AES對(duì)稱加密和解密過(guò)程

    JAVA中AES對(duì)稱加密和解密過(guò)程

    這篇文章主要為大家詳細(xì)介紹了JAVA中AES對(duì)稱加密和解密過(guò)程,感興趣的小伙伴們可以參考一下
    2016-08-08
  • java實(shí)現(xiàn)簡(jiǎn)單銀行管理系統(tǒng)

    java實(shí)現(xiàn)簡(jiǎn)單銀行管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單銀行管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • SpringBoot簡(jiǎn)單實(shí)現(xiàn)定時(shí)器過(guò)程

    SpringBoot簡(jiǎn)單實(shí)現(xiàn)定時(shí)器過(guò)程

    這篇文章主要介紹了SpringBoot簡(jiǎn)單實(shí)現(xiàn)定時(shí)器過(guò)程,對(duì)于Java后端來(lái)說(shuō)肯定實(shí)現(xiàn)定時(shí)功能肯定是使用到Spring封裝好的定時(shí)調(diào)度Scheduled
    2023-04-04

最新評(píng)論