狂神说-Elasticsearch 7.6入门学习笔记
Windows Elasticsearch IK分词器插件启动报错
错误如下:
1 | java.security.Acces ControlException: access denied (\ik\config\IKAnalyzer.cfg.xml" "read") |
原因:
D:\Program Files文件夹下的所有文件默认都是只读权限。
解决方法:
Elasticsearch不要安装在 Program Files 、Program Files (x86) 这些目录下。
Elasticsearch的ik分词器自定义字典myDict.dic的编码格式需要为UTF-8,否则无效
Elasticsearch使用term查询无数据返回的原因
- term查询适合查询number、date、keyword
- term查询text字段,需要映射支持keyword
参考链接
Elasticsearch如果没给映射,字段默认使用standard映射
建议中文使用ik_max_word映射
Elasticsearch SQL说明
ElasticSearch SQL转DSL
ElasticSearch关联查询
ElasticSearch的msearch,
msearch支持多索引uion联合查询。
msearch的语法如下:
1 | GET /_msearch |
查询一条数据它需要两个对象,第一个设置index和type,第二个设置查询语句。查询语句和search相同。
如果只是查询一个index,我们可以在url中带上index,语法如下:
1 | GET /索引名/_msearch |
请求示例1:
1 | GET /repetition-result/_msearch |
请求示例2:
1 | GET /repetition-result/_msearch |
ElasticSearch多个字段聚合统计
1 | "cardinality": { |
Elasticsearch Painless Script入门教程
Elasticsearch 查询模板(Mustache模板引擎)
Windows计算文件名的Md5值
certutil -hashfile 文件名 MD5
1 | C:\>certutil -hashfile E:\Downloads\ZGGX-ZF-CMND-2023200015.xlsx MD5 |
TortoiseSVN 远程仓库路径更换
- 右键项目文件夹 TortoiseSVN => Relocate
- 在 To URL 中输入新的仓库地址点击 OK
- 根据提示填入账户名密码即可
IDEA 远程仓库路径更换
Git修改分支名
1、修改本地分支名称
2、在本地将远程分支删除
3、将改名后的本地分支推送到远程仓库
Git回退到指定版本(两种方法验证通过)
方法一
1、查询commintId
IDEA界面、命令git log、远程仓库页面都可以
2、git reset --hard commintId
3、git push -f
必须用这个命令强推 或者 用图形界面强推。
否则会报下面的弹窗:
方法二
1、找到Git对应日志 -> 建立分支
2、push提交代码(支持修改代码后提交)
3、修改分支名(参考:Git修改分支名)
EasyExcel官方必读文档(包括版本选择)
EasyExcel部分字段为什么没法读取或者写入
使用了lombok的@Accessors(chain = true) ,无法被Cglib读取
建议使用@Builder来替换@Accessors(chain = true)
EasyExcel读取动态列
上面的截图有两个错误:① 动态列需要加上@ExcelIgnore注解(或者实体类加@ExcelIgnoreUnannotated) ② context.readStringCell(i)方法不存在
解决参考代码(验证通过):
1 | // 动态列处理 |
MySQL中的unix_timestamp(时间字符)、from_unixtime(数字类型)
from_unixtime()把long类型时间戳格式化
参考链接
抽象类(或者接口)是无法被Spring实例化的,因此无法添加@Service 或 @Componet 注解
Spring 循环依赖解决方法
启动项目报下面的错:
1 | The dependencies of some of the beans in the application context form a cycle: |
解决方法:
1、代码中主动取消循环依赖
2、增加允许循环依赖的配置
1 | spring: |
3、添加延迟加载@Lazy注解 (未成功)
Java jsch在Linux中获取sftp连接时失败
在本地Windows操作远程sftp服务器,完全没问题。但是部署到Linux服务器时,出现下面的错误:
1 | Session.connect: java.security.InvalidAlgorithmParameterException: |
本地和linux都是jdk 1.8的环境。
经排查,发现项目引入的jsch依赖如下:
1 | <dependency> |
解决方法:
1、使用jdk 1.8以上的环境
2、更换jsch依赖(经测试0.1.54也可以)
1 | <dependency> |
注:如果0.1.52版本在windows环境中运行会报下面的错:
1 | com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read |
解决方法:更换jsch依赖为0.1.54即可。