ElasticSearch(三)springboot整合ES

最基础的整合:

一、maven依赖

<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>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

二、配置文件application.yml

spring:
  data:
    elasticsearch:
    ####集群名称
     cluster-name: myes
    ####地址 
     cluster-nodes: 192.168.212.xxx:9300

三、实体类UserEntity

@Document(indexName = "mymayikt", type = "user")
@Data
public class UserEntity {
    @Id
    private String id;
    private String name;
    private int sex;
    private int age;
}

四、dao层代码(实现CrudRepository就可以了,里面封装很多操作ES的方法)

public interface UserReposiory extends CrudRepository<UserEntity, String> {

}

五、controller层

@RestController
public class EsController {

    @Autowired
    private UserReposiory userReposiory;

    @RequestMapping("/addUser")
    public UserEntity addUser(@RequestBody UserEntity user) {
        return userReposiory.save(user);
    }

    @RequestMapping("/findUser")
    public Optional<UserEntity> findUser(String id) {
        return userReposiory.findById(id);
    }
}

六、启动类

@SpringBootApplication
@EnableElasticsearchRepositories(basePackages = "com.dyh.dao")
public class AppEs {

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

直接启动会报错:

None of the configured nodes are available:

  解决方案(项目配置文件cluster-name要与ElasticSearch的配置文件属性值要相同):

    Vi /usr/local/elasticsearch-6.4.3/config/elasticsearch.yml

    cluster.name: myes

也可以参考这个博客:https://www.cnblogs.com/dalaoyang/p/8990989.html

原文地址:https://www.cnblogs.com/soft2018/p/10203024.html