ES如何打印DSL

news/2025/2/27 11:23:00

看了一下官网版本已经来到了8.17

正常打印似乎不行,突破的地方则是 藏在@JsonpDeserializable 这个注解上;

@JsonpDeserializable
public class SearchRequest

因此只有反序列化出来之后才能打印,似乎就这么简单,看源码或许能更快的解决问题

SearchRequest.Builder builder = new SearchRequest.Builder();
builder.query(q -> q.bool(boolQuery));
SearchRequest build = builder.build();
log.info("search request:【{}】", searchDSL(build));
java">    public String searchDSL(SearchRequest searchRequest) {
        // 创建 JSON 生成器和 JSON 映射器
        try (StringWriter writer = new StringWriter();
             JsonGenerator generator = Json.createGenerator(writer)
        ) {
            JsonpMapper mapper = new JacksonJsonpMapper();
            searchRequest.serialize(generator, mapper);
            generator.close();
            return writer.toString();
        } catch (Exception e) {
            log.error("search exception", e);
        }
        return null;
    }

打印es请求日志,在application.properties中添加 或者放到yaml 文件中

logging.level.org.elasticsearch.client.RestClient=DEBUG

效果

2025-02-26T22:59:26.458+08:00  INFO 35528 --- [unique-search] [nio-8080-exec-4] c.u.framework.common.utils.EsClient      : search request:【{"query":{"bool":{"must":[{"term":{"id":{"value":"1"}}},{"term":{"edition":{"value":"工信部出版社"}}},{"fuzzy":{"bookName":{"value":"我"}}}]}}}】
2025-02-26T22:59:26.594+08:00 DEBUG 35528 --- [unique-search] [nio-8080-exec-4] org.elasticsearch.client.RestClient      : request [POST https://localhost:9200/textbook/_search?typed_keys=true] returned [HTTP/1.1 200 OK]


http://www.niftyadmin.cn/n/5870031.html

相关文章

【Mastering Vim 2_08】第七章:Vim 的个性化配置

【最新版《Mastering Vim》封面,涵盖 Vim 9.0 版特性】 文章目录 第七章 Vim 的个性化配置1 升级到最新版 pip2 定制配色方案2.1 配色方案 PaperColor 实战演练 3 美化并增强 Vim 状态栏4 gVim 的个性化定制5 实战:vimrc 配置文件的同步6 Vim 个性化定制…

国产编辑器EverEdit - 贴心的AES加密功能

1 AES 加密解密 1.1 应用场景 如果要在网络上传递一些敏感信息,为了防止信息泄露,对信息进行加密是一种比较好的方式,EverEdit提供了AES加密/解密功能。 1.2 使用方法 步骤1:在编辑器中选中要加密或解密文本。步骤2&#xff1a…

elementplus点击按钮直接预览图片

引用&#xff1a;https://blog.csdn.net/this_zq/article/details/134535539 <el-image-viewerv-if"showImagePreview":zoom-rate"1.2"close"closePreview":url-list"imgPreviewList"/>const showImagePreview ref(false) cons…

矩阵的奇异值(SVD)分解和线性变换

矩阵的奇异值&#xff08;SVD&#xff09;分解和线性变换 SVD定义 奇异值分解&#xff08;Singular Value Decomposition&#xff0c;简称 SVD&#xff09;是一种重要的线性代数工具&#xff0c;能够将任意矩阵 ( A ∈ R m n \mathbf{A} \in \mathbb{R}^{m \times n} A∈Rmn…

MAC 安装Tensorflow简单方法

MacOS M1 pro安装tensorflow 1、环境配置&#xff08;必需&#xff09; PYTHON版本&#xff1a;3.11.0&#xff0c;python采用homebrew安装。&#xff08;已有python或更高版本可跳过&#xff0c;更高版本未经过测试&#xff0c;题主自认为可行&#xff09; brew install pyt…

kafka-leader -1问题解决

一. 问题&#xff1a; 在 Kafka 中&#xff0c;leader -1 通常表示分区的领导者副本尚未被选举出来&#xff0c;或者在获取领导者信息时出现了问题。以下是可能导致出现 kafka leader -1 的一些常见原因及相关分析&#xff1a; 1. 副本同步问题&#xff1a; 在 Kafka 集群中&…

Template Method 设计模式

模板方法模式&#xff08;Template Method Pattern&#xff09; 是一种 行为型设计模式&#xff0c;用于定义 算法的骨架&#xff0c;并允许子类在不改变算法结构的情况下 重新定义 其中的某些步骤。 核心思想&#xff1a; 在 基类 中定义 算法的整体流程&#xff08;骨架&am…

MySQL进阶04-MVCC实现原理

文章目录 表记录读取的两种方式举个栗子MySQL是如何避免幻读的bin log/redo log/undo logMVCC概述MVCC实现原理 表记录读取的两种方式 快照读&#xff1a;读取的是快照版本。普通的SELECT就是快照读。通过mvcc来进行并发控制的&#xff0c;不用加锁。当前读&#xff1a;读取的…