elasticsearch 父子关联查询,支持父+子数据按条件过滤
es 查询语句
{
"query": {
"bool": {
"should": [
{
"has_parent": {
"type": "device",
"query": {
"match": {
"user_id": "8"
}
}
}
},
{
"match": {
"alarm_type": "1"
}
}
]
}
}
}
java代码:
//group、sum、count 查询返回参数封装
SearchRequestBuilder sbuilder = TransportClient().prepareSearch("trackerdata_01").setTypes("alarm");
//拼装请求条件
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.should(QueryBuilders.hasParentQuery("device", QueryBuilders.matchQuery("user_id","8")));
queryBuilder.should(QueryBuilders.matchQuery("alarm_type","1"));
SearchResponse actionGet = sbuilder
.setQuery(queryBuilder)
.setScroll(new TimeValue(10000))
.setFrom(startRow)
.setSize(pageSize)
.execute().actionGet();
SearchHits hits = Hits();
List<AccSegment> data = new ArrayList<AccSegment>();
for (SearchHit hit : Hits())
{
System.out.Source().toString());
}
本文发布于:2024-02-01 13:33:25,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170676560436959.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |