不要急,总有办法的

使用java api 实现 having 该怎么写,急!

Elasticsearch | 作者 张鹏 | 发布于2018年01月12日 | 阅读数:3028

select age,count(*)  from bank group by age having count(*)>60
实现类似的查询过滤,已经分组了,但是having这个条件一直没找到怎么添加
已邀请:

strglee

赞同来自:

张鹏

赞同来自:

这个好像不行,我现在是做搜索某个人固定时间内出现的频次, having后面这个条件是动态变化的筛选条件,比如要看今天上午10点到11点,出现三次以上的人都是谁

张鹏

赞同来自:

您好,还有个问题请教您
微信截图_20180112114016.png

当我分组的时候选择这个字段的时候,会出现查不出来数据,但是选择另外一个value为数字的字段就可以
 
SearchRequestBuilder search = transportlient.prepareSearch("bigdata_idx_2").setTypes("captureCompare");
TermsBuilder tb= AggregationBuilders.terms("fcmp_fobj_id").field("fcmp_fobj_id").valueType(Terms.ValueType.STRING).order(Terms.Order.compound(
Terms.Order.aggregation("channel_longitudeC",false)
));
ValueCountBuilder valueAgg= AggregationBuilders.count("channel_longitudeC");
tb.subAggregation(valueAgg).minDocCount(200);//设置频次条件
search.setQuery(QueryBuilders.boolQuery()
.must(QueryBuilders.rangeQuery("fcmp_time").from(Long.valueOf(startTime)).to(Long.valueOf(endTime)))
).addAggregation(tb);
Terms tms= search.get().getAggregations().get("per_group_id");
请问我该怎么设置
not_analyzed
或者是不是因为这个字段存在空导致的结果没数据

要回复问题请先登录注册