<强>介绍强>
记录将elasticsearch集成到弹簧引导的过程,以及一些简单的应用和helper类使用。
<强>接入方式强>
使用spring-boot中的spring-data-elasticsearch,可以使用两种内置客户端接入
1,节点客户端(节点端):
配置文件中设置为当地:假的,节点客户端以无数据节点(node-master或node-client)身份加入集群,换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节点上。
2,传输客户端(传输客户端):
配置文件中设置为当地:没错,这个更轻量的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群中的节点。
两个Java客户端都通过9300端口与集群交互,使用Elasticsearch传输协议(Elasticsearch传输协议)。集群中的节点之间也通过9300端口进行通信。如果此端口未开,放你的节点将不能组成集群。
<强>环境强>
<>强版本兼容强>
请一定注意版本兼容问题。这关系到很多maven依赖.Spring Elasticsearch弹簧启动版本数据矩阵
& lt; parent> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-parent & lt; version> 1.4.1.RELEASE & lt; relativePath/比;& lt; !——从库中查找父——比; & lt;/parent> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-data-elasticsearch & lt;/dependency>
<>强配置文件强>
bootstrap.yml
春天: 数据: elasticsearch: #集群名 集群名称:syncwt-es #连接节点,注意在集群中通信都是9300端口,否则会报错无法连接上! 集群节点:localhost: 9300年,119.29.38.169:9300 #是否本地连接 本地:假 存储库: #仓库中数据存储 启用:真
<强>调试强>
<>强启动强>
启动项目,日志出现以下说明代表成功,并且没有报的错。
代码如下:
,2017-03-30 19:35:23.078 信息20881 - - - - - - (,,,,,,,,,主要]o.s.d.e.c.TransportClientFactoryBean ,,,:添加运输节点:localhost: 9300
<强>知识点强>
在Elasticsearch中,文档归属于一种类型(类型),而这些类型存在于索引(指数)中,我们可以画一些简单的对比图来类比传统关系型数据库:
Elasticsearch集群可以包含多个索引(指数)(数据库),每一个索引可以包含多个类型(类型)(表),每一个类型包含多个文档(文件)(行),然后每个文档包含多个字段(字段)(列)
关系数据库→数据库→表→行→列 Elasticsearch→指数→类型→文件→字段
<强>演示强>
Customer.java
/* * 2012 - 2013版权最初的作者或作者。 * *在Apache许可下的,2.0版本(“许可证”); *你可能不使用这个文件除了遵守许可证。 *你可以获得许可证的副本 * * *,除非适用法律要求或书面同意,软件 *在许可证下发布的分布>/* * 2012 - 2013版权最初的作者或作者。 * *在Apache许可下的,2.0版本(“许可证”); *你可能不使用这个文件除了遵守许可证。 *你可以获得许可证的副本 * * *,除非适用法律要求或书面同意,软件 *在许可证下发布的分布> 包com.syncwt.www.web; 进口com.syncwt.www.response.Message; 进口com.syncwt.www.service.CustomerService; 进口org.springframework.beans.factory.annotation.Autowired; 进口org.springframework.web.bind.annotation.RequestMapping; 进口org.springframework.web.bind.annotation.RequestMethod; 进口org.springframework.web.bind.annotation.RestController; 进口java.io.IOException;/* * * @version v0.0.1 * @Description CustomerController * @Creation日期2017年03月30日下午8 * @ModificationHistory谁当什么 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */@RestController 公开课CustomerController { @ autowired 私人客户服务客户服务; @RequestMapping (value=" https://www.yisu.com/test ",方法=RequestMethod.GET) 公共信息测试()抛出IOException { customerService.saveCustomers (); customerService.fetchAllCustomers (); customerService.fetchIndividualCustomers (); 返回Message.SUCCESS; } }详解spring-boot集成elasticsearch及其简单应用