1. 程式人生 > >elasticsearch聚合統計出現次數

elasticsearch聚合統計出現次數

public void getResult() {
        String beanName = "ppcOnlineEs";
        int size = 1000000;
        EsIndexClientBean esIndexClientBean = (EsIndexClientBean) context.getBean(beanName);
        TransportClient transportClient = esIndexClientBean.getTransportClient();
        org.elasticsearch.index.query.RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("createTime");
        rangeQueryBuilder.includeUpper(true).includeLower(true).from("2017-06-06 00:00:00").to("2017-11-06 00:00:00");
        SearchResponse sr = transportClient.prepareSearch("videonew").setTypes("videonew").setQuery(rangeQueryBuilder).setSize(0)
                .addAggregation(
                        //按照displayName.displayName做聚合,聚合結果倒序排序
                        AggregationBuilders.terms("by_displayName").field("displayName.displayName").order(Terms.Order.count(false)).size(size)).execute().actionGet();
        Map<String, Aggregation> aggregationMap = sr.getAggregations().getAsMap();
        //獲取聚合結果
        Aggregation agg = aggregationMap.get("by_displayName");
        String outfileName = "C:\\重複.txt";
        try {
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(outfileName))));
            int count = 0;
            for (Terms.Bucket entry : ((StringTerms) agg).getBuckets()) {
                count++;
                String key = entry.getKeyAsString();            // bucket key
                long docCount = entry.getDocCount();            // Doc count
                if (docCount < 2) {
                    break;
                }
                StringBuilder sb = new StringBuilder();
                sb.append( key + "\t" + docCount);
                bw.write(sb.toString());
                bw.newLine();
                if(count%1000==0)
                {
                    bw.flush();
                }

            }
            bw.flush();
            bw.close();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

相關推薦

elasticsearch聚合統計出現次數

public void getResult() { String beanName = "ppcOnlineEs"; int size = 1000000; EsIndexClientBean esIndexClientBea

centos下對文件某些特定字符串分組統計出現次數

ppi ive status str int appid uniq pro 統計 假如現有數據: { "@timestamp": "2018-10-13T21:55:58+08:00", "remote_addr": "100.120.34.3", "referer":

Linux下統計出現次數最多的指定欄位值

假設桌面上有一個data.txt文字,內容如下: {id='xxx' info='xxx' kk='xxx' target='111111' dd='xxx'} {id='xxx' info='xxx' kk='xxx' target='777' dd='xxx'} {i

[HAOI2016]找相同字符 廣義後綴自動機_統計出現次數

spa char s 輸入輸出格式 長度 pen space ret std max 題目描述:給定兩個字符串,求出在兩個字符串中各取出一個子串使得這兩個子串相同的方案數。兩個方案不同當且僅當這兩個子串中有一個位置不同。 輸入輸出格式輸入格式:兩行,兩個字符串 s1,s2,

用hash_map統計出現次數最多的前N個URL

海量資料統計頻率最高詞彙的常規辦法之一是先通過一個hash函式處理資料然後取模N,拆分為N個小檔案,對每一個小檔案進行詞頻統計和排序處理,然後歸併N個小檔案取頻率最大的M個數。 關於hash_map和map的選擇使用有幾點注意的,hash_map是hash表的形式實

統計出現次數最多的資料

題目描述: 給你上千萬或上億資料(有重複),統計其中出現次數最多的前N個數據。     分析:上千萬或上億的資料,現在的機器的記憶體應該能存下(也許可以,也許不可以)。所以考慮採用hash_map/搜尋二叉樹/紅黑樹等來進行統計次數。然後就是取出前N個出現

Js面試題(二)--js實現統計出現次數最多字符個數

round rip ont js面試 () jos 圖片 第一個字符 clas 話不多話,直接上圖 統計出現次數最多的字符是哪個? 1、當然首先想到的是循環這個字符···· 2、用for循環--第一次檢索到

統計字符出現次數

tor ret put 構造 ati oid count 對象 鍵值對 如何統計字符串中每個字符出現的次數,這類題遇到過很多次,下面就來謝謝解決思路: 可采用HashMap來解決,HashMap存儲的是鍵值對,即key-value;每個key對應一個value值,利用這個特

字符串中各字符出現次數統計

meta logs 1-1 ges 語句 class -1 gif body 要求:統計一個字符串中 各字符串出現的次數。比如 "a1a35b5" 統計出來應該是 a-2, 1-1, 3-1, b-1, 5-2。 思想一:用split方法將key字符切除,比較源字符串長度和

awk命令之 - 統計/etc/passwd文件中各用戶所使用的shell類型及出現次數

linux 命令 awk 統計/etc/passwd文件中各用戶所使用的shell類型及出現次數awk -F: ‘BEGIN{printf"%-15s\t%s\n","ShellType","Count"}{shellType[$NF]++}END{for(i in shellType)print

python之pygal:擲兩個不同的骰子並統計大小出現次數

range 截圖 pan lis label 一個 出現 pen des 代碼示例: 1 # 擲兩個不同的骰子並統計大小出現次數 2 import pygal 3 from die_class import Die 4 5 die = Die(6) # 實例

sql統計字符串出現次數技巧

false size cti question first clas 出現的次數 統計字符 -s 在牛客網上看到一道題,感覺挺有趣,是用sql統計字符串出現的次數。 這裏提供一種思路,比如統計字符串A中子串B的出現次數:SELECT (LENGTH(A) - LENGT

統計文件裏面某個字符串出現次數

shell grep awk1.第一種方法:使用grep命令進行統計grep -o ‘字符串‘ file |wc -l[@more@]2.第二種方法:使用awk命令進行統計awk -v RS="@#$j" ‘{print gsub(/字符串/,"&")}‘ file3.第三種方法:另一種使用awk命

72.挖掘CSDN密碼到鏈表並統計密碼出現次數生成密碼庫

sca ret open word pac 要求 i++ 密碼 tsp list.h 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h>

86.八千萬qq密碼按相似度排序並統計密碼出現次數,生成密碼庫

關閉 tdi 文件的 寫入文件 spa body qsort def string 存儲qq的文件地址以及按照密碼相似度排序的文件地址 1 //存儲qq的文件的地址 2 char path[512] = "QQ.txt"; 3 //按照密碼相似度排序的文件地址 4 ch

awk , 統計secure.log中 每個破解你密碼的ip的出現次數|access.log 中 每個ip地址出現次數

root sha 阿爾巴尼亞 lsp layer 關閉 AS 越南 反饋 統計secure.log中 每個破解你密碼的ip的出現次數 [root@oldboyedu-sh01-lnb files]# awk ‘/Failed password/{h[$(NF-3)]++}

判斷一個字符串中出現次數最多的字符,統計這個次數

sdff BE 出現次數 div asd 遍歷 轉換成 arr str var str = ‘abaasdffggghhjjkkgfddsssss3444343‘; // 1.將字符串轉換成數組 var newArr = str.spl

返回(統計)一個列表中出現次數最多的元素

clas 列表 元素 center enter ax1 叠代器 orm {} 首先定義一個函數 函數內逐行依次解釋為: #定義一個函數def max1(lt):   dict1 = {} #建立一個空字典 s = set(lt)

題:統計數字出現次數。 隨機生成100個數字,數字範圍從1到10,統計每個數字出現次數並打印到控制臺。

pre 方向 system 繼續 void pub arr static 遍歷 public static void main(String[] args) { printCount(getNumList());}private static ArrayList&l

判斷一個字符串中出現次數最多的字符,並統計字數

spa bbbb aci light turn border java UNC ber \1 等於 (\w) var s = ‘aaabbbcccaaabbbaaabbbbbbbbbb‘; var a = s.split(‘‘); a.sort();