ElasticSearch 6.8.1动态更新同义词(适配elasticsearch-analysis-dynamic-synonym)

本文介绍了如何将elasticsearch-analysis-dynamic-synonym插件适配到ElasticSearch 6.8.1版本。通过修改源码解决版本不匹配问题,详细阐述了解压、导入IDEA、修改POM文件、解决编译错误、打包、上传至服务器并修改相关配置的步骤。最后提到了同义词文件的格式和使用注意事项。
摘要由CSDN通过智能技术生成

动态更新同义词插件适配

非热更新的同义词配置
elasticsearch-analysis-dynamic-synonym 插件可以动态更新同义词,但github上只有5.1.1的版本了,不适配es6.8.1,通过修改源码适配6.8.1。
首先从github上下载5.1.1的源码和插件压缩包
github地址
在这里插入图片描述
下载后解压源码包,并导入idea
POM文件修改
修改如下两个版本号
在这里插入图片描述
源码修改
由于修改了导入的elasticsearch版本,源码有些地方会报错,修改DynamicSynonymFilter下的getLogger,并同时修改其它类里的getLogger报错的地方:

// public static Logger logger = ESLoggerFactory.getLogger("dynamic-synonym");

	// 6.8.1的es去掉了ELLoggerFactory,修改为Loggers
	public static Logger logger = Loggers.getLogger(String.class,"dynamic-synonym");

修改LocalSynonymFile下的getReader,新增一个newBufferedReader方法(6.8.1没有这个方法,从5.1.1的源码里把newBufferedReader方法给copy出来)

/**
	 * Opens the given url for reading returning a {@code BufferedReader} that may be
	 * used to read text from the URL in an efficient manner. Bytes from the
	 * file are decoded into characters using the specified charset.
	 */
	// copy from elasticsearch-5.1.1.jar source code
		public static BufferedReader newBufferedReader(URL url, Charset cs) throws IOException {
   
		CharsetDecoder decoder = cs.newDecoder();
		Reader reader = new InputStreamReader(url.openStream(), decoder);
		return new BufferedReader(reader
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值