最基础的整合:
一、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