SpringBoot集成Spring-data-Elasticsearch

本文为SpringBoot集成Spring-data-Elasticsearch

转载请注明:http://blog.csdn.net/sinat_28434649/article/details/79315077

1、版本

springboot:2.0.0.RC1
#使用低版本的springboot连接ES失败
elasticsearch:5.5.2

2、SpringBoot配置

application.yml

 spring: 
  data: 
    elasticsearch: 
     clusterName: elastic-cky
     clusterNodes: your_host:9300

自动扫描repositories根目录

@Configuration
@EnableElasticsearchRepositories(basePackages = "com.cky.demo.repositories")
public class ElasticConfig {

}

3、Java类

实体类(doc)

@Document(indexName = "company",type = "employe" , shards = 8, replicas = 1)
public class EmployeesDO implements Serializable{
    private static final long serialVersionUID = -5486342676464419079L;
    @Id
    private Integer empNo;

    private Date birthDate;

    private String firstName;

    private String lastName;

    private String gender;

    private Date hireDate;

    public Integer getEmpNo() {
        return empNo;
    }

    public void setEmpNo(Integer empNo) {
        this.empNo = empNo;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Date getHireDate() {
        return hireDate;
    }

    public void setHireDate(Date hireDate) {
        this.hireDate = hireDate;
    }

    @Override
    public String toString() {
        return "EmployeesDO [empNo=" + empNo + ", birthDate=" + birthDate + ", firstName=" + firstName + ", lastName="
                + lastName + ", gender=" + gender + ", hireDate=" + hireDate + "]";
    }
}

ElasticsearchRepository实现类

package com.cky.demo.repositories;

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

import com.cky.demo.domain.EmployeesDO;

public interface EmployeesRepository extends ElasticsearchRepository{
 
}

4、测试

测试类

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

    @Autowired
    EmployeesRepository employeesRepository;
    @Test
    public void Test() {
        EmployeesDO employeesDO = new EmployeesDO();
        employeesDO.setEmpNo(123);
        employeesDO.setFirstName("Tom");
        employeesDO.setLastName("jery");
        employeesDO.setGender("M");
        
        employeesRepository.save(employeesDO);
    }
}

成功新增了doc

SpringBoot集成Spring-data-Elasticsearch_第1张图片


5、问题:

    主要遇到问题就是Spring-Data-ElasticSearch 和 ElasticSearch版本不匹配,导致一直连接不上ES,这两个版本需要匹配(见官网),spring-boot 1.5.x,不支持高版本的spring-Data-ElasticSearch,因此选用高版本的spring-boot。

spring data elasticsearch elasticsearch
3.0.0.RC2 5.5.0
3.0.0.M4 5.4.0
2.0.4.RELEASE 2.4.0
2.0.0.RELEASE 2.2.0
1.4.0.M1 1.7.3
1.3.0.RELEASE 1.5.2
1.2.0.RELEASE 1.4.4
1.1.0.RELEASE 1.3.2
1.0.0.RELEASE 1.1.1

6、参考文档:

https://github.com/spring-projects/spring-data-elasticsearch

你可能感兴趣的:(ElasticSearch)