ElasticSearch聚合查询

private static void searchAgg() {
       
        TermsAggregationBuilder urlAggBuilder = AggregationBuilders.terms("urlAgg").field("url").size(5);
        SearchResponse sr = client.prepareSearch(indexname).setQuery(null).addAggregation(urlAggBuilder).execute()
                .actionGet();
        sr.getAggregations();

        Map aggMap = sr.getAggregations().asMap();
        StringTerms urlTerms = (StringTerms) aggMap.get("urlAgg");

        Iterator urlBucketIt = urlTerms.getBuckets().iterator();

        while (urlBucketIt.hasNext()) {
           
            Bucket urlBucket = urlBucketIt.next();
            if (!urlBucket.getKey().toString().equals("")) {
               
                if (urlBucket.getDocCount() > 1) {
                   
                    String url = urlBucket.getKey().toString();
                    QueryBuilder query = QueryBuilders.matchQuery("url", url);
                   
                    SearchResponse searchResponse = client.prepareSearch(indexname)
                            .setTypes(type)
                            .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                            .setQuery(query)
                            .setSize(50)
                            .execute().actionGet();
                   
                    SearchHits hits = searchResponse.getHits();

                    List idList = new ArrayList();
                    for (SearchHit hit : hits) {
                       
                        JSONObject jsonObject = new JSONObject(hit.getSourceAsString());
                       
                        String current = jsonObject.getString("current_time").toString();
                        if (current.equals("2017-04-13")) {
                            idList.add(hit.getId());
                        }
                    }

                    for (int i = 1; i < idList.size(); i++) {
                        client.prepareDelete("info", "info", idList.get(i)).execute().actionGet();
                    }
                }
            }
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容