在這一篇文章開始之前,你需要先安裝一個ElasticSearch,如果你是windows環境可以參考windows上安裝 ElasticSearch-Head插件和Elasticsearch這篇文章。
1、啓動 ElasticSearch服務。
這篇文章簡單的介紹一下 spring boot整合Elasticsearch。
2、創建項目,pom文件中添加以下依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
3、配置文件
server.port=8074
spring.data.elasticsearch.repositories.enabled=true
spring.data.elasticsearch.cluster-name=my-el
#9300與9200區別
#9300端口:ES節點之間的通訊使用,是TCP協議端口考號,ES集羣之間通訊端口號
#9200端口: ES節點和 外部通訊使用,暴露ES restful 接口端口號
spring.data.elasticsearch.cluster-nodes=192.168.41.26:9300
4、創建用戶實體
/**
*
* 功能:<br>
* 作者:小碼張<br>
* 時間:2019年3月20日<br>
* 版本:1.0<br>
*
*/
@Document(indexName="userinfo", type="user")
//indexName索引名稱 可以理解爲數據庫名 必須爲小寫 不然會報org.elasticsearch.indices.InvalidIndexNameException異常
//type類型 可以理解爲表名
@Data
public class UserInfo {
@Id
private String id;
private String name;
private String age;
}
5、創建UserRepository,繼承CrudRepository,代碼如下:
/**
*
* 功能:CrudRepository內部封裝了對 Elasticsearch 的CRUD<br>
* 作者:小碼張<br>
* 時間:2019年3月20日<br>
* 版本:1.0<br>
*
*/
@Component
public interface UserRepository extends CrudRepository<UserInfo, String>{
}
6、最後新建一個controller進行測試
@RestController
public class EsController {
@Autowired
private UserRepository userRepository;
@RequestMapping("/save")
public String saveUser() {
UserInfo user = new UserInfo();
user.setId("456321");
user.setName("張三");
user.setAge("18");
userRepository.save(user);
return "sueecss";
}
@RequestMapping("/findById")
public Optional<UserInfo> findById() {
return userRepository.findById("456321");
}
}
測試結果
注意:我的 Spring boot 版本是 2.0.1.RELEASE。