本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程《SpringBoot實戰教程》,主講人楊紅豔,
點選檢視視訊内容。
SpringBoot整合ElasticSearch
添加依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
application.yml全局配置:
spring:
data:
elasticsearch:
cluster-nodes: 192.168.25.129:9300
local: false
repositories:
enabled: true
針對上一節的案例,我們來做說明。
封裝實體類:
建立包:com.qianfeng.pojo
@Document(indexName="userindex",type="user")
public class User implements Serializable{
@Id
private Long id;
private String first_name;
private String last_name;
private int age;
private String about;
private List<String> interests;
//get、set方法省略
@Override
public String toString() {
return "User[id=" + id +",first_name=" + first_name + ", last_name=" + last_name + ", age=" + age + ", about =" + about + ", interests=" + interests + "]";
}
}
實作搜尋:
com.qianfeng.controller:
@Controller
public class TestController {
//SpringBoot在啟動時自動配置了ElasticsearchTemplate
@Autowired
private ElasticsearchTemplate elasticSearchTemplate;
@RequestMapping("/search")
@ResponseBody
public String findDoc() {
//構造搜尋條件
QueryBuilder builder = QueryBuilders.existsQuery("first_name");
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder);
.build();
List<User> users=elasticSearchTemplate.queryForList(searchQuery, User.class);
for(User user:users) {
System.out.println(user);
}
return "success";
}
}
在啟動類中添加所有需要掃描的包:
@SpringBootApplication(scanBasePackages="com.qianfeng")
執行結果:
