博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5、elasticsearch与springboot的集成
阅读量:6948 次
发布时间:2019-06-27

本文共 3944 字,大约阅读时间需要 13 分钟。

hot3.png

版本对应关系

elasticsearch:5.6.0

springboot:1.5.6

es依赖配置

UTF-8
UTF-8
1.8
5.6.0
org.elasticsearch.client
transport
${elasticsearch.version}
org.apache.logging.log4j
log4j-core
2.7

 

es配置

import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.transport.client.PreBuiltTransportClient;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.FactoryBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import java.net.InetAddress;import java.net.UnknownHostException;/** * @author WangXH * @version V1.0 * @Package com.wangxh.elasticsearch.esstudy.config * @date 2017-09-18 2017-9-18 13:29 * @Description: ElasticSearch  5.6  配置 */@Configurationpublic class ElasticSearchConfig implements FactoryBean
, InitializingBean, DisposableBean { private Logger logger= LoggerFactory.getLogger(this.getClass()); //由于项目从2.2.4配置的升级到 5.4.1版本 原配置文件不想动还是指定原来配置参数 @Value("${spring.data.elasticsearch.cluster-nodes}") private String clusterNodes ; @Value("${spring.data.elasticsearch.cluster-name}") private String clusterName; private TransportClient client; @Override public void destroy() throws Exception { try { logger.info("Closing elasticSearch client"); if (client != null) { client.close(); } } catch (final Exception e) { logger.error("Error closing ElasticSearch client: ", e); } } @Override public TransportClient getObject() throws Exception { return client; } @Override public Class
getObjectType() { return TransportClient.class; } @Override public boolean isSingleton() { return false; } @Override public void afterPropertiesSet() throws Exception { logger.info(clusterName+" "+clusterNodes); this.initClient(); } private void initClient() { try { PreBuiltTransportClient preBuiltTransportClient = new PreBuiltTransportClient(settings()); if (!"".equals(clusterNodes)){ for (String nodes:clusterNodes.split(",")) { String inetsocket[] = nodes.split(":"); String address = inetsocket[0]; Integer port = Integer.valueOf(inetsocket[1]); preBuiltTransportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(address),port )); } client = preBuiltTransportClient; } } catch (UnknownHostException e) { logger.error(e.getMessage()); } } /** * 初始化默认的client */ private Settings settings(){ Settings settings = Settings.builder() .put("cluster.name",clusterName) .put("client.transport.sniff",true).build(); client = new PreBuiltTransportClient(settings); return settings; }}

在application.yml文件中配置es的连接信息:

spring:  data:    elasticsearch:      cluster-name: es-test      cluster-nodes: 192.168.1.126:9300

9300是es的默认socket端口号,如果配置了多个es的slave,这里的cluster-nodes 其实也只用配置master的ip:port就可以,因为在配置中有:client.transport.sniff,true。

 

总结:在集成es到springboot的步骤有以下几点

  1. 添加es的依赖以及es的日志依赖
  2. 创建一个es的配置文件读取es连接配置,并初始化TransportClient

 

 

 

转载于:https://my.oschina.net/u/1993676/blog/1551682

你可能感兴趣的文章
嵌入式linux------SDL移植(am335x下显示yuv420)
查看>>
【原创】erlang 模块之 epmd
查看>>
备用java方法
查看>>
有状态的 web 应用
查看>>
System V 消息队列
查看>>
管道和FIFO
查看>>
Use Excel Pivot Table as a BI tool
查看>>
QDialog之屏蔽Esc键
查看>>
Cocos2d-x-v3场景切换
查看>>
[置顶]白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现
查看>>
HotSpotVM 对象机制实现浅析#1
查看>>
[android]android自动化测试
查看>>
为代码签名,供后人瞻仰或唾弃,你敢吗?
查看>>
Java笔记:集合框架实现原理
查看>>
用Objective-C写了一个简单的批量更改文件名的程序
查看>>
建立JDBC的环境配置和相关下载(Mac)
查看>>
Android 使用ViewPager结合PhotoView开源组件实现网络图片在线浏览功能
查看>>
GNU Radio中的数据元(Metadata)
查看>>
【JSP开发】URL路径的规范
查看>>
Android学习笔记(3):Android项目结构分析
查看>>