SpringBoot2.0.3整合elasticsearch5.6.10

之前整合过一次 SpringBoot1.59和elasticsearch2.4.4,而 elasticsearch 更新很快,已经有版本 6了,且对之前的版本2不再更新。为了避免以后出现问题不好解决,我们这次试用elasticsearch5。

之前的那篇文章已经不适用了,下面介绍SpringBoot2.0.3整合elasticsearch5.6.10。

 

环境说明:

  • spring boot 使用 2.0.3.RELEASE
  • elasticsearch为5.6.10
  • 本地安装ES集群为 5.6.11版本

 

一、添加依赖

  1. <!--引入ElasticSearch的依赖包,默认使用elasticsearch5.6.10版本-->
  2. <dependency>
  3.     <groupId>org.springframework.boot</groupId>
  4.     <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
  5. </dependency>
  6. <!--需要引入transport-netty3-client,否则会启动报错-->
  7. <dependency>
  8.     <groupId>org.elasticsearch.plugin</groupId>
  9.     <artifactId>transport-netty3-client</artifactId>
  10.     <version>5.6.10</version>
  11. </dependency>

因为我的 SpringBoot 版本是2.0.3,所以默认的es是5.6.10版本,必须添加transport-netty3-client,否则会报错 Java.lang.ClassNotFoundException: org.elasticsearch.transport.RemoteTransportException 之类错误。

 

二、添加配置,将 ES CLient 组件加入到Spring 容器

  1. /**
  2.  * @author 言曌
  3.  * @date 2018/8/29 下午1:16
  4.  */
  5. @Configuration
  6. public class ElasticSearchConfig {
  7.     private static final Logger logger = LoggerFactory.getLogger(ElasticSearchConfig.class);
  8.     @Bean
  9.     public TransportClient transportClient() {
  10.         logger.info("初始化开始。。。。。");
  11.         TransportClient client = null;
  12.         try {
  13.             TransportAddress transportAddress = new InetSocketTransportAddress(InetAddress.getByName("localhost"),
  14.                     Integer.valueOf(9300));
  15.             // 配置信息
  16.             Settings esSetting = Settings.builder()
  17.                     .put("cluster.name","elasticsearch")
  18.                     .build();
  19.             //配置信息Settings自定义
  20.             client = new PreBuiltTransportClient(esSetting);
  21.             client.addTransportAddresses(transportAddress);
  22.         } catch (Exception e) {
  23.             logger.error("elasticsearch TransportClient create error!!!", e);
  24.         }
  25.         return client;
  26.     }
  27. }

 

三、测试

关于安装 ES 和 head 插件这里就不再介绍了

1、手动创建索引

  1. {
  2.     "settings":{
  3.         "number_of_shards"3,
  4.         "number_of_replicas"0
  5.     },
  6.     "mappings":{
  7.         "post":{
  8.             "properties":{
  9.                 "title":{
  10.                     "type""text"
  11.                 },
  12.                 "content":{
  13.                      "type""text"
  14.                 },
  15.                 "author":{
  16.                      "type""keyword"
  17.                 },
  18.                 "create_time":{
  19.                     "type""date",
  20.                     "format""yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis"
  21.                 }
  22.             }
  23.         }
  24.     }
  25. }

 

2、手动创建一条记录

PUT  http://127.0.0.1:9200/article/post/1

  1. {
  2.     "title""静夜思",
  3.     "content""静夜思全文,省略...",
  4.     "author""李白",
  5.     "create_time""2018-08-29 15:12:13"
  6. }

 

使用 elasticsearch-head 来查看我们刚才添加的记录,成功

SpringBoot2.0.3整合elasticsearch5.6.10

 

 

3、单元测试

  1. @SpringBootTest
  2. @RunWith(SpringRunner.class)
  3. public class EsTest {
  4.     @Autowired
  5.     private TransportClient client;
  6.     @Test
  7.     public void test() {
  8.         //查询ID为1的文章
  9.         GetResponse result = client.prepareGet("article","post","1").get();
  10.         System.out.println(result);
  11.     }
  12. }

 

运行结果如下

SpringBoot2.0.3整合elasticsearch5.6.10

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
言曌

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: