您当前的位置: 首页 > 

zmc@

暂无认证

  • 0浏览

    0关注

    142博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ES的嵌套查询和嵌套聚合

zmc@ 发布时间:2019-04-29 11:17:59 ,浏览量:0

1.想要实现嵌套查询和嵌套聚合,首先需要在索引里面设置某个属性是嵌套类型(一般是List)-----type=nested

2.API的demo-嵌套查询---(使用场景:需要根据list中的两个字段以and的关系进行查询)

// 构造布尔查询
        BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
        boolQueryBuilder.filter(QueryBuilders.termQuery("holdAgentList.agentId", agentId));

        // 
        QueryBuilder nestedQuery = QueryBuilders.nestedQuery("holdAgentList",
            QueryBuilders.boolQuery().filter(QueryBuilders.termQuery("holdAgentList.agentId", agentId))
                .filter(QueryBuilders.termQuery("holdAgentList.isPromiseGuide", 0)), ScoreMode.None);

        boolQueryBuilder.filter(QueryBuilders.boolQuery().filter(nestedQuery))
            .filter(QueryBuilders.termQuery("onOffStatus", 3));


        // 构建查询参数
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder()
            .query(boolQueryBuilder)
            .from(0)
            .size(0);
       

3.嵌套聚合中,以list中的多字段用and的方式进行聚合----暂无解决方案

 

关注
打赏
1643271353
查看更多评论
立即登录/注册

微信扫码登录

0.0354s