详解spring-boot集成elasticsearch及其简单应用

  

<强>介绍

  

记录将elasticsearch集成到弹簧引导的过程,以及一些简单的应用和helper类使用。

  

<强>接入方式

  

使用spring-boot中的spring-data-elasticsearch,可以使用两种内置客户端接入

  

1,节点客户端(节点端):
  

  

配置文件中设置为当地:假的,节点客户端以无数据节点(node-master或node-client)身份加入集群,换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节点上。
  

  

2,传输客户端(传输客户端):
  

  

配置文件中设置为当地:没错,这个更轻量的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群中的节点。
  

  

两个Java客户端都通过9300端口与集群交互,使用Elasticsearch传输协议(Elasticsearch传输协议)。集群中的节点之间也通过9300端口进行通信。如果此端口未开,放你的节点将不能组成集群。

  

<强>环境

  

<>强版本兼容

  

请一定注意版本兼容问题。这关系到很多maven依赖.Spring Elasticsearch弹簧启动版本数据矩阵

  

详解spring-boot集成elasticsearch及其简单应用“> </p>
  <p> <>强搭建环境</强> </p>
  <p>弹簧引导:1.4.1。发布<br/>
  </p>
  <p> spring-data-elasticsearch:用了最基础的spring-boot-starter-data-elasticsearch,选择高版本时需要对于提高es服务版本<br/>
  elasticsearch: tripwire </p>
  </p> <p> Maven依赖
  
  <pre类=   & 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及其简单应用