elasticsearch学习笔记——三 java代码与kibana dsl查询es索引数据

本文介绍了如何使用Java代码配合Elasticsearch的DSL进行精确查询,内容涉及serialnumber在特定值列表中并与appeartime在指定时间范围内匹配的逻辑。查询结果按appeartime降序排列,并进行分页展示。同时,文章还探讨了如何使用DSL进行聚合查询,以实现按serialnumber分组。示例代码与Kibana DSL查询结果对比,确保数据的准确性和一致性。
摘要由CSDN通过智能技术生成

查询逻辑:
serialnumber为1232041022或者 1453544213 或者1100422310 并且 appeartime在[1619366427001,1619366553000]之间。数据按照appeartime倒序排列。然后取出0~9号数据(分页0号页码,10个)

(serialnumber=‘1232041022’||serialnumber='1453544213 '||serialnumber='1100422310 ') && (appeartime.gte1619366427001,lte1619366553000)

|| &&为bool运算符,使用dsl查询中bool关键字should,must。
java代码实现:

/**
     * 查询serialnumber在三个之中的数据 1232041022 1453544213 1100422310
     * 查询appeartime在 [1619366427001,1619366553000] 的数据
     * 加上分页0,10;
     * 加上按时间倒序
     */
    @Test
    void matchRangePageSort(){
   
        // {"match":{"serialnumber":"1232041022"}}
        MatchQueryBuilder serialnumber1 = QueryBuilders.matchQuery("serialnumber", "1232041022");
        // {"match":{"serialnumber":"1453544213"}}
        MatchQueryBuilder serialnumber2 = QueryBuilders.matchQuery("serialnumber", "1453544213");
        // {"match":{"serialnumber":"1100422310"}}
        MatchQueryBuilder serialnumber3 = QueryBuilders.matchQuery("serialnumber", "1100422310");
        // {"bool":{"should":[]}}
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        List<QueryBuilder> should = boolQueryBuilder.should();
        // {"bool":{"should":[{"match":{"serialnumber":"1232041022"}}]}}
        should.add(serialnumber1);
        // {"bool":{"should":[{"match":{"serialnumber":"1232041022"}},{"match":{"serialnumber":"1453544213"}}]}}
        should.add(serialnumber2);
        // 条件一
        // {"bool":{"should":[{"match":{"serialnumber":"1232041022"}},{"match":{"serialnumber":"1453544213"}},{"match":{"serialnumber":"1100422310"}}]}}
        should.add(serialnu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值