es7.x版本如何获取查询命中的文档总数

原创 2021-03-03 11:26 阅读(3836)次
#### 前言 早在elasticsearch6.x版本时,es查询时默认会显示hits total总数,当然聚合场景下是不会的。目前我们项目将es6.8升级到7.6,一些普通查询,总数显示不正常了,最大只显示10000条。 比如查询语句如下: ```json GET bd_frequent_test/_search { "query": { "match_all": {} } } ``` 查询结果如下: ```json { "took": 1, "timed_out": false, "_shards": { "total": ...

Es 7.x版本批量写入数据路由字段报错:Action/metadata line [1] contains an unknown parameter [_routing]

原创 2021-03-02 19:02 阅读(3181)次
#### 异常问题 在使用elasticsearch7版本批量插入数据时,因为设置了路由,一直报错:Action/metadata line [1] contains an unknown parameter [_routing] 具体错误信息如下: ```json {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_routing]"}],"type":"illegal_argu...

Es创建索引mapping时报错:Root mapping definition has unsupported parameters: [doc

原创 2021-03-02 14:20 阅读(8060)次
#### 异常问题 es7.x版本创建索引报如下错误:Root mapping definition has unsupported parameters: [doc 具体信息如下: ```json { "error" : { "root_cause" : [ { "type" : "mapper_parsing_exception", "reason" : "Root mapping definition has unsupported parameters: [doc : {dynamic=false, prop...

docker构建体积较小的jdk镜像

原创 2021-03-01 14:28 阅读(1380)次
#### 前言 我们一般在docker中运行java项目都会选择体积较小的jdk镜像,比如alpine-java构建的jdk镜像,但alpine安装软件并不方便,并且有些软件在alpine中并不好装。 例如我们java项目中使用tesseract来做图片文字识别,它在centos中很容易安装,在alpine环境中,怎么都没法安装成功,于是我们就需要构建一个有centos环境的jdk镜像 #### 构建有centos环境的jdk镜像 1.下载jre 下载地址: https://www.java.com/en/download/manual.jsp 下载jre8.tar.gz,并不是...

clickhouse如何删除数据库和创建数据库以及分布式DDL创建数据库

原创 2021-02-25 17:20 阅读(6120)次
#### 前言 我们使用clickhouse大部分情况都是使用集群模式,那么我们希望创建库或删除库时都是一条语句在集群所有节点中运行,而不是手动在各节点单独执行创建或删除库。 语句如下: #### 1.clickhouse删除数据库 ```sql drop database base_db ``` #### 2.存在时再删除数据库 ```sql drop database IF EXISTS base_db ``` IF EXISTS是可选的 #### 3.分布式DDL删除数据库 ```sql drop database IF E...

图片的base64字符转成BufferedImage

原创 2021-02-23 17:43 阅读(2238)次
图片的base64字符转成BufferedImage 代码如下: ```java import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.Base64; import java.util.Base64.Decoder; public class ImageUtils { /** * base64 编码转换为 ...

java使用BufferedImage放大或缩小图片

原创 2021-02-23 11:32 阅读(3997)次
BufferedImage可以用来简单编辑图片:包括裁剪、放大、缩小等。 下面贴的是利用BufferedImage做图片放大或缩小代码: ```java String imageBase64 = "xxxxxx";//图片base64字符串 BufferedImage image = ImageUtils.base64ToBufferedImage(imageBase64); int width = image.getWidth(); int height = image.getHe...

java使用guava cache实现本地缓存

原创 2021-02-04 15:39 阅读(4379)次
在高并发的场景中我们不希望所有请求都打到数据库中,以免压垮数据库,这时我们就可能会使用本地缓存来实现解决并发性能问题,当然我们也可以选择redis来实现,但redis有时并发也并没有那么快。于是本地缓存就是我们的唯一救命手段了。 Guava的cache是线程安全的,是本地缓存的不二之选,默认情况下缓存过期是依赖于访问判断时间过期和数量限制过期。 我们再也不用自己手写一个基于ConcurrentHashMap的本地缓存了 #### maven引入guava包 ```html com.google.guava guava 18.0 ...

java stream List转Map与List转List与Map转List以及List<Map>转Map

原创 2021-02-03 17:26 阅读(7983)次
我们写代码时经常会遇到List转Map或List转List,Map转List,看到我这标题有没有要晕(我在说什么??转来转去)。之前没有用stream的时候,都是用for循环转换,现在jdk8提供流式处理,性能稍快,还方便。 下面记录一下代码,免得自己老是不记得如果编写stream. #### List转Map ```java Map tgMap = tgList.stream().collect(Collectors.toMap(BazTgTO::getTgId, n -> n)); ``` #### Map转List ```java list = dbFilterM...

es聚合之实现日期按周一到周日的聚合统计

原创 2021-02-02 13:40 阅读(4610)次
#### 前要说明 由于业务要查看日志,按周一到周天展示日志统计量 ![](http://img.classinstance.cn/20210202/1612244338577.jpg) 我们数据是存储在es中,找了半天聚合函数,发现可以用脚本定义周一到周日。 这里就需要用到es中的日期类org.elasticsearch.script.JodaCompatibleZonedDateTime 它其中就提供了一个函数getDayOfWeek()获取一周星期几对应的数值,这个函数刚好可以实现我们的需求。 #### getDayOfWeek函数的使用 我们先用script_fields...

mybatis一条语句实现一对一,一对多查询

原创 2021-01-26 14:56 阅读(532)次
有时我们要查询多张子表,或关联子表查询,如查询用户信息时,想要带出部门信息,正常使用mybatis要写两条语句,一个查询用户信息,一个查询部门信息,那么使用mybatis如何一条语句做到查询出多个对象信息呢? ##### 参考如下文章 [https://blog.csdn.net/qq_44066201/article/details/99656030](https://blog.csdn.net/qq_44066201/article/details/99656030 "https://blog.csdn.net/qq_44066201/article/details/99656030"...

java父类转子类报错?怎么办?如何父类转子类

原创 2021-01-21 15:01 阅读(3861)次
我们java程序员经常会用到子类继承父类,在开发过程中就会遇到子类转父类,父类转子类的问题。 子类转父类不会报错,但父类转子类强转是不会报错的,但运行后就报错了,代码如下: public class UserInfo { private String userName; public UserInfo() { } public String getUserName() { return userName; } public void setUs...

CF由于网络原因连接服务器失败请重试 1033_10136

原创 2021-01-18 00:34 阅读(11765)次
今天好不容易叫上以前朋友上CF玩几把游戏,兴致勃勃打开游戏,两人一起组队打排位,我游戏一进去就掉出来,一直弹出错误:由于网络原因连接服务器失败请重试 1033_10136。试了好多次都这样,就是进不去游戏。问了我朋友,他们都能进,就我不行。 错误如下图1: ![](http://img.classinstance.cn/20210118/1610899663050.jpg) # 解决过程 于是我怀疑是游戏出了问题,点CF的修复游戏一直不行,又重启电脑又重启游戏还是不行。 图2: ![](http://img.classinstance.cn/20210118/16108998521...

原生js如何判断PC端还是手机端

转载 2021-01-15 22:47 阅读(545)次
由于我的博客要判断用户或者说访客是手机端还是pc端访问,我又不能用bootstrap的布局,由是找了下如何实现,这里转载一下别人的方案。 ```javascript /** * 判断访问类型是PC端还是手机端 * 返回ture为手机端 */ function isMobile() { var userAgentInfo = navigator.userAgent; var mobileAgents = [ "Android", "iPhone", "SymbianOS", "Windows Phone", "iPad","iPod"]; ...
js

mybatis设置全局变量

原创 2020-12-29 15:19 阅读(3318)次
clickhouse在分布式子查询中会将语句发送到多个分片执行,如果语句中的表前不写上库名,查询时会报在default库中找不到表,所以我们需要给每个clickhouse的查询中都写上库名,这样才能正常执行。但库名写死在语句中并不优雅,万一库名修改或测试环境的库名不同,我们开发要将这么多查询语句都要修改,不得累到死,于是就要将clickhouse库名进行配置到公共变量,并在mybatis中获取。下面分享下如何在mybatis设置和全局变量。先要spring boot配置文件中定义需要设置的全局配置,然后在clickhouse的mybatis sessionFactory中设置全局变量,这样my...

java数组转list

原创 2020-12-16 17:54 阅读(677)次
java中数组如何转list或者说ArrayList,每次码代码时,遇到这个问题都要想一下,这里给自己记录下,免得每次都跳坑。数组转list,有两种方法,代码如下: //方法一 List<String> lista = Arrays.asList(split); //方法二 List<String> listb = new ArrayList<>(split.length); Collectio...

druid执行clickhouse报错:sql injection violation, dbType clickhouse , druid-version 1.2.2, syntax error

原创 2020-12-15 11:45 阅读(8124)次
今天遇到一个druid不支持clickhouse的问题,druid执行clickhouse报错:sql injection violation, dbType clickhouse , druid-version 1.2.2, syntax error错误如下: Caused by: java.sql.SQLException: sql injection violation, dbType clickhouse, , druid-version 1.2.2, syntax error: syntax error, error in :'icle r where first_appear_ti...

clickhouse如何删除数据

原创 2020-11-27 18:09 阅读(37687)次
clickhouse删除数据提供了三种方式:一、是删除分区,数据就会删除掉二、是通过Alter语句删除数据三、是还可以通过设置日期字段或表的TTL生命周期,到期自动清除数据四、直接用delete from语句删除(22.8版本之后才有的功能)注意:上面前2点都可以使用分布式DDL删除集群各节点数据,第三点是创建表时定义的,暂时不提。1.删除分区alter table 表名 drop partition 分区名分区名可以用下语句查询select * from system.parts p where table = '表名'以我下面这张表为例,分区函数是toYYYYMMDD(collect_ti...

clickhouse执行查询内存超出限制问题:Memory limit (total) exceeded

原创 2020-11-26 18:15 阅读(12763)次
今天用clickhouse执行分布式查询报错:SQL 错误 [241]: ClickHouse exception, code: 241, host: 192.168.29.124, port: 18123; Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 15.44 GiB (attempt to allocate chunk of 4294967296 bytes), maximum: 13.95 GiB (version 20.6.3.28 (official bui...

spring boot项目默认日志配置

原创 2020-11-26 17:43 阅读(690)次
spring boot默认日志为logback打印,默认不配置也可以打印日志,但生产环境中这样容易让日志打到机器磁盘不足,所以我们还是需要配置一下的:logging: file: name: app.log path: /home/java/ max-size: 50MB max-history: 7

clickhouse执行分布式DDL报错:Table `xxx` isn't replicated, but shard #2 is replicated according to its

原创 2020-11-17 18:06 阅读(1327)次
clickhouse执行分布式DDL报错:Table `xxx` isn't replicated, but shard #2 is replicated according to its cluster definition执行的语句是:alter table engs_comp_clg_result_local on cluster shipin_cluster drop partition 20191101 我是想把我集群shipin_cluster中两个节点的本地表中一个分区删除掉,但是一执行报如上错误,说是我的本地表不是复制表,但是分片2却根据定义在复制。我的集群配置如下:<y...

quartz定时器改名后报错,删除多余的定时表数据

原创 2020-09-27 16:55 阅读(2215)次
quartz定时器改名后报错,需要清除原来表中的对应数据,删除多余的定时表数据删除语句如下,对应的定时信息要传入:DELETE from qrtz_cron_triggers where TRIGGER_NAME = 'personTimeSpaceTaskTrigger'; DELETE from qrtz_triggers where TRIGGER_NAME = 'personTimeSpaceTaskTrigger'; DELETE from qrtz_job_details where JOB_NAME = 'personTimeSpaceTask'; DELETE from ...

win10双击winzip压缩里的exe文件安装软件产生文件碎片怎么删除

原创 2020-05-29 00:23 阅读(1075)次
昨晚下载了dota2在安装时直接用WinRAR压缩软件打开,双击压缩包里的.exe文件直接安装游戏,解压到一半发现C盘满了,解压失败了。。这游戏解压后有20多G。然后看了C盘大小半天都没有恢复,一直处于满的状态,WTF!!!WinRAR这软件居然不会清除解压后的碎片文件!网上说等一小时后会自动清除,WTF!!!我等了一天都有,算了吧,我自己去C盘找,想想应该在用户目录里,还真给我找到了,解压碎片文件在C:\Users\jary\AppData\Local\Packages的一个WinZip开头的文件夹中,于是把他删除了,足足留下了13G的临时文件!!!,把我的C盘撑满了所以说解压时最好解压到指...

springboot项目初始化druid连接池时报错java.lang.NullPointerException: null

原创 2020-04-27 18:25 阅读(5227)次
新创建了一个springboot项目,一顿配置,以为能正常启动,结果打脸了,报错了:2020-04-27 18:14:04.655 ERROR 18376 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} init error java.lang.NullPointerException: null at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325) ~[na:1.8.0_191] at jav...

maven deploy新包到私服,别的工程不会自动引用新包的问题

原创 2020-04-15 17:41 阅读(2077)次
在idea中将公共jar包maven deploy自动上传私服后,我并没有修改包的版本,同事在别的工程clean install后发现引用的还是原来的包。后来才发现,别人如果想使用这个最新的包,可以在idea的Maven Projects视图中点reimport,就可以了。install为什么不能下载新包呢,原来同样的版本情况下,install默认找本地的,所以才会出现引用的旧包的问题。也可以设置仓库的<updatePolicy>属性,参考https://www.iteye.com/blog/quinnhe-2066831

idea类找不到问题Caused by: java.lang.NoClassDefFoundError

原创 2020-04-15 17:02 阅读(3645)次
我的项目A引用另一个名叫pip-data-model-solr.jar包,这个包是我们的实体module,我改过这个module里的代码,重新打包pip-data-model-solr.jar后,项目A clean install后就启动不了,我是用idea启动的。报如下错:Caused by: java.lang.NoClassDefFoundError: cn/com/datu/data/model/solr/entity/po/PersonDoc at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Clas...

Base64编码出现换行符

原创 2020-03-31 11:49 阅读(1967)次
我有一个url图片地址,需要将他base64编码然后传给另一个服务,我本地一直是可以,将程序上传到linux服务器中一直发现图片出不来,看了下日志,base64编码后发现出来的数据多了换行符,如下:地址:kv://kv-face-video_face/2020/03/31/11/24/hmfdq-5439232d-8ab2-4403-8882-6b1d90fbeaee-1585625075325-1017433base编码后值:a3Y6Ly9rdi1mYWNlLXZpZGVvX2ZhY2UvMjAyMC8wMy8zMS8xMS8yNC9obWZkcS01NDM5MjMyZC04YWIyLTQ0...

feign报错java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

原创 2020-03-26 10:29 阅读(3825)次
修改了一下feign接口,原本可以的接口突然报错:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cn.com.datu.thirdpartapi.feign.OpodMetaOfProfileFeign': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty...

docker中启动elasticsearch报错:Error opening log file 'logs/gc.log': Permission denied

原创 2020-03-24 15:16 阅读(7405)次
最近公司组织学习elasticsearch,于是自己又重温了一下es,由于没有环境,又重新在docker安装了一下elasticsearch,启动命令如下:docker run --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -v /home/docker/es/plugins:/usr/share/elasticsearch/plugins -v /home/docker/es/data:/...

postgresql主从复制时报错:no pg_hba.conf entry for replication connection from host "192.168.15.131", user

原创 2020-03-20 13:39 阅读(6116)次
今天在部署postgresql主从复制时,复制一直不成功,检查了主从库的配置没发现什么问题,于是修改主库的配置,修改postgresql.conf:logging_collector = on将日志功能打开,重启主库看到日志一直在报错:FATAL: no pg_hba.conf entry for replication connection from host "192.168.15.131", user "replicator", SSL off我以为pg_hba.conf中配置了如下就可以:local replication all ...