在上一篇博文中,我们了解了Linux安装elasticsearch+kibana运行环境的方法,相信只要根据我的博文,都可以搭建起来的。也基本上了解了一下es的存储结构,现在我们这里舱尝试用SpringBoot2.0去整合elasticsearch,其实也很简单的,毕竟SpringBoot基本上帮我们搞定了配置和环境,只需要加入依赖,配置文件,调用SpringBoot封装好的方法即可。当然如果要深入研究的话,额那是后话。我们开始吧!
1、项目结构

相信大家都很熟悉了,大概介绍一下,UserDao是操作ES文档型数据库的主要类。
2、pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.myforever</groupId><artifactId>springboot-elasticsearch</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency></dependencies></project>
主要是引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>
3、application.yml
这个配置文件主要是配置elasticsearch服务的一ip和端口,很简单吧。
spring:data:elasticsearch:cluster-nodes: 192.168.144.2:9300
4、UserDao.java
操作es的接口,只需要继承CrudRepository即可
public interface UserDao extends CrudRepository<User, String>{}
5、User.java
实体类,也就是es中的文档。会用@Document注解指明所属索引以及类型,也就是对应数据库中的数据库和表
@Document(indexName="myes",type="user")public class User {@Idprivate String id;private String name;private int age;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
6、TestController.java
@RestControllerpublic class TestController {@Autowiredprivate UserDao userDao;@RequestMapping("/es")public User es(HttpServletRequest request) {String id = request.getParameter("id");User user = new User();user.setId(id);user.setName("林文华");user.setAge(20);userDao.save(user);//下面这里返回结果Optional<User> us = userDao.findById(id);System.out.println(us.get());return us.get();}}
将UserDao注入进来,然后操作es,这里是根据页面传来的id,将user保存到es中。然后根据ID查询出来返回到页面。
7、ESApp.java
启动类,这里也要用@EnableElasticsearchRepositories(basePackages = “cn.myforever.es.dao”),指定DAO,有点类似于MyBatis的@ScanMapper。
@SpringBootApplication@EnableElasticsearchRepositories(basePackages = "cn.myforever.es.dao")public class ESApp {public static void main(String[] args) {SpringApplication.run(ESApp.class, args);}}
8、启动测试
浏览器访问连接:http://localhost:8080/es?id=1
页面返回显示:{“id”:”1”,”name”:”林文华”,”age”:20}
表示成功。
9、GITHUB地址
https://github.com/suibibk/springboot-elasticsearch.git
结语
入门都是很简单的,但是想要深入了解,还是得下点功夫。
