标签:
通过Aggregation来分组查询:
SearchResponse response = client.prepareSearch(INDEX_DOUBAN).setTypes(TYPE_DOUBAN)
    		      .addAggregation(
    		              AggregationBuilders.terms("by_"+tag).field(tag).size(1000)	           		              		       
    		                  )    
    		   
    		    .execute().actionGet();
        Terms terms = response.getAggregations().get("by_"+tag);
        for(Bucket b:terms.getBuckets()){
        	// Sum sum = b.getAggregations().get("sum");
        	list.add((String) b.getKey());
        	//System.out.println("filedname:"+b.getKey()+"     docCount:"+b.getDocCount());
        }
这里要注意的是:返回数量不是和之前一样setSize(),而是要设置AggregationBuilders的size才行;其次:对于非数字和英文的字段,这样的组合查询默认会进行分词处理,所以要用mapping来设置字段的分词与否,这部分后面详细叙述。
分布式搜索引擎ElasticSearch(插入数据及java api 二)
标签:
原文地址:http://www.cnblogs.com/zengcy/p/5356016.html