SpringBoot集成Elasticsearch过程实例
作者:闲人鹤 发布时间:2022-07-30 20:08:56
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
配置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


猜你喜欢
- 前文传送门:Netty分布式高性能工具类recycler的使用及创建从对象回收站中获取对象我们回顾上一小节demo的main方法中从回收站获
- 在 MyEclipse 的可视化 Swing 中,有 JTable 控件。JTable 用来显示和编辑常规二维单元表。那么,如何将 数据库S
- 本文实例为大家分享了Java使用单链表实现约瑟夫环的具体代码,供大家参考,具体内容如下构建一个单向的环形链表思路1.先创建第一个节点, 让f
- StringBuilder内部是由多段char[]组成的半自动链表,因此频繁从中间修改StringBuilder,会将原本连续的内存分隔为多
- 本文实例讲述了WinForm实现窗体最大化并遮盖任务栏的方法。分享给大家供大家参考。具体实现方法如下:using System;using
- 十进制转二进制正整数转二进制除2取余,逆序排列,高位补零。示例:十进制255 = 二进制1111 1111计算过程:255/2=127===
- 一 前言此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全
- 在系统开发中,需要对请求和响应分别拦截下来进行解密和加密处理,在springboot中提供了RequestBodyAdviceAdapter
- 问题注意:本人使用的Spring Boot 2.0.2, 对1.5.x系列未必有用。官方文档在这里直接解决办法0, 移除spring-boo
- 前言之前探讨过的 sealed class 和 sealed interface 存在 module 的限制,但其主要用于密封 class
- 本文实例为大家分享了Android实现可折叠式标题栏的具体代码,供大家参考,具体内容如下先看效果图:一、实现步骤:1、布局文件<?xm
- 一、Maven生命周期、阶段、目标 &nbs
- 设置变量nRowNum = 8; % 画布行数nColNum = 9; % 画布列数offset_x = 0;% 红车坐标起点offset_
- 方法一:需要调用win32api,winform、wpf通用[DllImport("user32.dll")]publi
- 本文实例讲述了JavaMail实现邮件发送的方法。分享给大家供大家参考。具体如下:下载 activation.jar 和 mail.jar配
- 引入依赖 <dependency> <g
- 本文实例为大家分享了java制作简单验证码的具体代码,供大家参考,具体内容如下在这里我们需要用到java的画笔工具,所以我们需要导入以下包i
- MyBatis在注解上使用动态SQL1、用script标签包围然后像xml语法一样书写@Select({"<script&g
- 在C语言中,函数名可以当做函数指针传递给形参从而实现回调void f1() { printf("f1()\n"); }v
- 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;