今天是2019年6月7日,操蛋的事情发生了
阿里云的es产品6.3.2,居然禁用了transportClient(默认9300端口),我在测试环境都开发好了.上预发懵逼了..卧槽?
怎么办...
找了各种资料
然并卵..
3.2.0.M4默认使用的elasticsearch版本是6.7.2
可恨的是啥,6.7版本开始新增了一个参数,include_type_name,因为8.0版本后要完全除去type.
增加这个字段,所以我调用elasticsearchTemplete创建索引的时候炸了..因为api自动带了我刚说的参数
public static final String INCLUDE_TYPE_NAME_PARAMETER = "include_type_name";
然后我要开始搞事了
下载源码
1.把仓库的地址改成自己的私服地址
2.注释部分代码.因为打包的时候会报错
3.找到所有使用该代码的地方.默认都改为true
ps,jdk版本12,gradle版本5.4.1
4.改完后,打包,加上这个参数,就是编译正式包了
ps,如果私服已经有6.7.2版本的了.先去删掉.然后再去本地的仓库,删掉.jar-release版本是不允许覆盖的
至此,底层部分已经修改了
我们再来改第二个模块
下载spring data es 的源码,并修改自己的仓库
然后有啥需求自己往上面改
说下m4版本的用法
esconfig
repository的用法
官方打算支持alias的,但是m4版本下载下来.并没有看到支持代码,我就自己实现了
ElasticsearchPersistentEntity 这个接口新增 alias()方法
实现类增加如下代码
RestTemplete实现别名
上传,打包,完美