spring data elasticsearch 打印sql(DSL)语句

本文介绍如何在SpringDataElasticsearch中实现类似于MySQL的SQL日志打印功能,通过具体代码示例展示了如何配置和使用日志打印,以便于分析和调试。

刚开始使用spring data elasticsearch 会有有一个疑问就是:能不能像操作mysql那样打印sql日志,也便于分析啊,其实特别简单,具体如下的代码所示:

    /**
     * 高亮显示
     * @param keyword
     * @param pageNum
     * @param pageSize
     * @return
     */
    @GetMapping("/getUserList2")
    public Page<User> query3( String keyword, Integer pageNum, Integer pageSize) {
        if(pageNum == null || pageNum <= 0){
            pageNum = 1;
        }
        if(pageSize == null || pageSize <= 0){
            pageSize = 5;
        }

        //获取QueryBuilder
        BoolQueryBuilder querryBuilder = this.getQuerryBuilder(keyword,"三1006");
        NativeSearchQueryBuilder nativeSearchQueryBuilder = this.getWildcardQuery(keyword, "myes", "myuser");
        //关联分页、过滤器
        nativeSearchQueryBuilder
                .withIndices("myes")
                .withTypes("myuser")
                //添加bool过滤器
                .withFilter(querryBuilder)
                .withSort(SortBuilders.fieldSort("age").order(SortOrder.DESC))
                //添加分页条件
                .withPageable(PageRequest.of(pageNum - 1, pageSize));

        //查询结果
        NativeSearchQuery searchQuery = nativeSearchQueryBuilder.build();
		//打印filter 的dsl语句
        log.info(searchQuery.getFilter().toString());
        System.out.println("=================");
        //log.info(searchQuery.get);
        //打印query的 的dsl语句
        System.out.println(nativeSearchQueryBuilder.build().getQuery().toString());
        AggregatedPage<User> esEntityList = estemplate.queryForPage(nativeSearchQueryBuilder.build(), User.class);

        return esEntityList;

    }

完整代码地址: https://github.com/Dr-Water/springdata-es-action

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T-OPEN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值