软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot集成Elasticsearch过程实例

SpringBoot集成Elasticsearch过程实例

作者:闲人鹤  发布时间:2022-07-30 20:08:56 

标签:Spring,Boot,集成,Elasticsearch

1. 准备工作

需要提前安装好Elasticsearch,访问地址:http://127.0.0.1:9200/ 得到以下结果,得到cluster_name,下面配置使用。


{
"name" : "O8GslS3",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "pviTqfXtR3GtnxF-Po-_aA",
"version" : {
 "number" : "6.5.0",
 ......
},
"tagline" : "You Know, for Search"
}

2. 使用Maven创建SpringBoot工程

配置Maven的pom.xml文件


<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-parent</artifactId>
   <version>2.1.6.RELEASE</version>
 </parent>

<dependencies>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
   </dependency>
 </dependencies>

注意:spring-boot-starter-data-elasticsearch包,引用的是spring-data-elasticsearch包,而spring-data-elasticsearch包的版本与elasticsearch服务版本是有兼容性问题的。

目前并不支持elasticsearch7.x,参考:https://github.com/spring-projects/spring-data-elasticsearch

SpringBoot集成Elasticsearch过程实例

配置application.yml文件


spring:
data:
 elasticsearch:
  cluster-name: docker-cluster
  cluster-nodes: 127.0.0.1:9300
  repositories:
   enabled: true

3. 代码

实体类。使用@Document注解,参数indexName是索引名称,type是type名称。


// 声明索引名称,type名称@Document(indexName = "houseindex", type = "house")
public class HouseIndexTemplate {

@Id
 private Long id;
 private String name; ......
}

访问接口。使用@Repository注解,并继承ElasticsearchRepository接口,就可以直接访问的。

有两个参数:1.返回的对象,2.ID参数数据类型


@Repository
public interface HouseRepository extends ElasticsearchRepository<HouseIndexTemplate, Long> {
}

测试用例


@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class UserServiceTest {

@Autowired
 private HouseRepository houseRepository;

@Test
 public void selectUser(){    HouseIndexTemplate template = new HouseIndexTemplate();    template.setId(1);    template.setName("Tom");
   houseRepository.save(template);
 }

}

4. 异常解释

问题1: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{IVH9QII0QrOU9GkXdsJPiA}{127.0.0.1}{127.0.0.1:9300}]]

原因:这是说配置的节点不可用,原因答题有3种可能:(1)IP地址或端口填写有误;(2)cluster_name填写有误;(3)Elasticsearch服务已关闭

来源:https://www.cnblogs.com/huanshilang/p/12622356.html

0
投稿

猜你喜欢

  • 数据校验在web应用里是非常重要的功能,尤其是在表单输入中。在这里采用Hibernate-Vapdator进行校验,该方法实现了JSR-30
  • 一,SQL注入–1,需求–1,利用jdbc查询user的信息,如果信息正确就登录,否则提示错误–1,创建user表,指定字段id name
  • 1、在ActionSupport中有一个validate()方法,这个方法是验证方法,它会在execute()方法执行之前执行,所以能够起到
  • 介绍装饰者模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,增加对象功能来说,装饰模式比生成子类实现更为灵活。
  • 1.例题题目描述迷宫由 n 行 m 列的单元格组成,每个单元格要么是空地,要么是障碍物。其中1表示空地,可以走通,2表示障碍物。给定起点坐标
  • 1. 创建全局异常处理器类GlobalExceptionHandler@ControllerAdvice: 定义统一的异常处理类,捕获 Co
  • 本文实例讲述了Java实现的计算最大下标距离算法。分享给大家供大家参考,具体如下:题目描述给定一个整形数组,找出最大下标距离j−i, 当且A
  • 下面通过图文并茂的方式给大家讲解下Java开发环境配置,具体内容如下:对于JAVA新手来说,刚开始要学JAVA,而自己的电脑上毫无与JAVA
  • SpringAOP的介绍:传送门demo介绍主要通过自定义注解,使用SpringAOP的环绕通知拦截请求,判断该方法是否有自定义注解,然后判
  • 本文实例讲述了C#实现的二维数组排序算法。分享给大家供大家参考,具体如下:class Order{  /// <summar
  • 本文为大家分享了java摄像头截图的具体代码,供大家参考,具体内容如下本来sun有个jmf组件可以很方便的实现摄像头截图的,不过这版本后来停
  • Android中的异步消息机制分为四个部分:Message、Handler、MessageQueue和Looper。其中,Message是线
  • 对某个类型中的方法进行拦截,然后加入固定的业务逻辑,这是AOP面向切面编程可以做的事,在springboot里实现aop的方法也有很多, s
  • 用Java编写简单的五子棋,供大家参考,具体内容如下前言这两天在空闲时间做了个五子棋项目,分享给大家看一下,界面是这样的:界面很丑我知道,本
  • 首先理解数据绑定为什么要使用数据绑定基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单:但我们提交后,为了将请求信
  • 本文实例讲述了java 线程方法join简单用法。分享给大家供大家参考,具体如下:虽然关于讨论线程join方法的博客已经很多了,不过个人感觉
  • 本文实例为大家分享了java GUI学生图书管理的具体代码,供大家参考,具体内容如下- mysql数据库建表:1.book表 2.bs借书记
  • 声明式事务回顾事务事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎!事务管理是企业级应用程序开发中必备技术,用来确保数据的完整
  • 引言依照领导要求区分了两种压测模式:固定次数压测和固定时间压测。此前一直沿用的都是固定次数,所以本次第二版剥离了固定次数的模式增加了固定时间
  • 前言通过深入分析Spring源码,我们知道Spring框架包括大致六大模块, 如Web模块,数据库访问技术模块,面向切面模块,基础设施模块,
手机版 软件编程 asp之家 www.aspxhome.com