我的代码具有一个ElasticSearch查询和JSON格式的聚合,并且想要调用ElasticSearch Java API。
对于查询部分,我可以使用WrapperQuery从JSON构建查询,如下所示:
val query = Json.obj(
"query_string" -> Json.obj("query" -> "*"))
val aggs = Json.obj(
"gender" -> Json.obj("terms" -> Json.obj("field": "gender")),
"age" -> Json.obj("terms" -> Json.obj("field": "age")))
val aggsRequestBuilder = new SearchRequestBuilder(client)
.setIndices(index())
.setQuery(QueryBuilders.wrapperQuery(query.toString())
.addAggregation(AggregationBuilders.???(aggs.toString())
但是然后,我也有用于聚合的JSON,但没有看到可用于从JSON构建聚合对象的AggregationsBuilder.wrapperAggregation()函数。
我想念什么吗?
我找到了答案,没有记载。setAggregations()的byte []重载将接受JSON。我希望这对其他人有帮助。
val aggsRequestBuilder = new SearchRequestBuilder(client)
.setIndices(index())
.setQuery(QueryBuilders.wrapperQuery(query.toString())
.setAggregations(agg.toString().getBytes())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句