ElasticSearch6 学习(三) Spring boot 整合 elasticSearch 并进行简单的操作

前言:

学习路径:https://www.bilibili.com/video/av45584656  码家学院的视频

这次是记录Spring Boot 整合 ElasticSearch 

目录

1.添加pom文件

2.配置实体类和注解

3.测试

4. 注意:


1.添加pom文件

最主要的依赖是 elasticsearch的:


	 org.springframework.boot
	 spring-boot-starter-data-elasticsearch

完整的依赖:


	org.springframework.boot
	spring-boot-starter-parent
	2.0.0.RELEASE
	 



	
		org.springframework.boot
		spring-boot-starter-data-elasticsearch
	
	
		org.springframework.boot
		spring-boot-starter-web
	

	
		org.springframework.boot
		spring-boot-devtools
		runtime
		true
	
	
		org.projectlombok
		lombok
		true
	
	
		org.springframework.boot
		spring-boot-starter-test
		test
	

	

    
      
	    org.springframework.boot
	   spring-boot-maven-plugin
       
    

2.配置实体类和注解

1.配置yml

server:
  port: 8090
spring:
  data:
    elasticsearch:
      cluster-name: elasticsearchCluster  //集群名称 
      cluster-nodes: 192.168.137.133:9300 //自己的ip地址

关于cluster-name 是需要 在 elasticsearch的配置文件进行修改 

先退出 kibana 服务和 elasticsearch 服务

然后 进入自身的ela的config文件夹 

vim elasticsearch.yml

可以看到有一个cluster.name

ElasticSearch6 学习(三) Spring boot 整合 elasticSearch 并进行简单的操作_第1张图片

配置好自己的 保存 然后 用非root启动 elasticsearch 。

root 启动 kibana 就好了

2.编写实体类

我这里直接定义的user类 对应elasticsearch中的文档 (User)

我就直接定义User了

@Data
//有点像JPA的注解
//@文档的名称是guoergou的那个 类型是user类型
@Document(indexName = "guoergou",type = "user")  
public class User {

    @Id  // id 是主键 
    private String id ;
    private String name;
    private String sex;
    private int age;

}

3.编写Dao层 ,用于连接ela文档数据库

public interface UserDao extends CrudRepository {
}

需要注意导入的依赖是 es的

import com.zqj.elasticsearch.entity.User;
import org.springframework.data.repository.CrudRepository;

新建一个接口命名为UserRepository,让该接口继承CrudRepository接口,以持久化对象User作为CrudRepository的第一个类型参数,表示当前所操作的持久化对象类型,Integer作为CrudRepository的第二个类型参数,用于指定ID类型 我指定的是String 类型,因为对应的User对象的id类型就是String类型 所以定义的是String

4.定义 controller,用于接收前台的请求来获取数据

@RestController
public class UserController {

    @Autowired
    private UserDao userDao;  // 注解dao层

    @RequestMapping("/addUser")
    public User addUser(@RequestBody User user) {  //使用post方式传递json串格式数据过来
        return userDao.save(user);
    }

    @RequestMapping("/findUser")
    public User selectUserById(@RequestParam("id") String id) {  //使用get请求传过来
        return userDao.findById(id).get();
    }

}

 

5.application主方法添加注解 去扫描 dao层

@SpringBootApplication
//开启es依赖 扫描的包就是dao层中的类
@EnableElasticsearchRepositories(basePackages = "com.zqj.elasticsearch.dao")
public class ElasticsearchApplication {

	public static void main(String[] args) {
		SpringApplication.run(ElasticsearchApplication.class, args);
	}

}

简单的demo就写好了

3.测试

用来测试下

使用postman发送数据 因为在前面定义的是一个body  所以需要使用post方式发送数据

ElasticSearch6 学习(三) Spring boot 整合 elasticSearch 并进行简单的操作_第2张图片

发送成功后 返回的是成功的实体

ElasticSearch6 学习(三) Spring boot 整合 elasticSearch 并进行简单的操作_第3张图片

然后用get方式去查询一下

ElasticSearch6 学习(三) Spring boot 整合 elasticSearch 并进行简单的操作_第4张图片

看到也能得到 说明刚才是存储成功的。

4. 注意:

9300与9200区别

9300端口: ES节点之间通讯使用
9200端口: ES节点 和 外部 通讯使用

9200式HTTP协议,主要用作和外部通讯 9300通过TCP协议进行通讯,jar包通过tcp协议 ES集群之间也是通过9300的tcp进行通讯

ElasticSearch6 学习(三) Spring boot 整合 elasticSearch 并进行简单的操作_第5张图片

ElasticSearch6 学习(三) Spring boot 整合 elasticSearch 并进行简单的操作_第6张图片

这节暂时记录如上

你可能感兴趣的:(elasticsearch6,springboot)