这是我在Marvel Sense中的代码:
GET /sweet/cake/_search
{
"query": {
"bool": {
"must": [
{"term": {
"code":"18"
}}
]
}
},
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "id"
}
}
}
}
我想用Java编写,但我不知道如何。
答案 0 :(得分:1)
您可以在official documentation中找到Java客户端的一些示例。
但在您的情况下,您需要使用bool/must
创建一个QueryBuilders
查询,并使用terms
创建一个AggregationBuilders
聚合。它是这样的:
// build the query
BoolQueryBuilder query = QueryBuilders.boolFilter()
.must(QueryBuilders.termFilter("code", "18"));
// build the terms sub-aggregation
TermsAggregation stateAgg = AggregationBuilders.terms("group_by_state")
.field("id");
SearchResponse resp = client.prepareSearch("sweet")
.setType("cake")
.setQuery(query)
.setSize(0)
.addAggregation(stateAgg)
.execute()
.actionGet();