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