天天看點

SpringBoot如何整合ElasticSearch? | 帶你讀《SpringBoot實戰教程》之四十

上一篇:ElasticSearch概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十九 下一篇:SpringBoot如何整合WebSocket? | 帶你讀《SpringBoot實戰教程》之四十一

本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程《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")           

執行結果:

SpringBoot如何整合ElasticSearch? | 帶你讀《SpringBoot實戰教程》之四十
SpringBoot如何整合ElasticSearch? | 帶你讀《SpringBoot實戰教程》之四十

配套視訊