码迷,mamicode.com
首页 > 编程语言 > 详细

分布式搜索引擎ElasticSearch(插入数据及java api 二)

时间:2016-04-05 19:41:12      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

通过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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!