好久没写博客了,距离上次博客过去好几年了,博客编写的改版也变动了好多都认不出来了。。。之前好多工作中的笔记都记在了各种杂七杂八的软件里面没有公开了,从onenote,印象笔记,语雀,有道云笔记,到最近刚入坑的notion,发现notion真是一个all in one的无限嵌套的牛逼工具。。。这也再次激发我写博客的热情了,,,先随便写一篇博客热热身当做回归吧,后期会逐渐把工作中遇到的问题解决方案还有一些其他想分享的东西发布到博客,就这样吧先
解决问题有时候为了定位现场问题,需要查看代码真实执行的es语句,来确定拼接的es语句是否正确,或者是es语句对应的查询es里面是否有数据,方便后期定位问题是代码问题还是es数据问题
这里只需要在进行各种拼接以后,调用SearchSourceBuilder.toString() 方法即可输出查询语句,很方便调试,
但是上面这种输出是格式化后的json,如果放在日志中去看可能不方便,这种情况下可以去掉所有空格后进行日志打印
调用下面代码即可将es的对应查询语句在一行显示出来,方便查看
logger.info(">>>>>>> conditon >>>>>>>>>" + ssb.toString().replaceAll("n", ""));
另外提一嘴,这里不能通过下面这种方式打印出es的查询语句
System.out.println(JSON.toJSONString(searchSourceBuilder));



