【spring】springboot使用jpa集成elasticsearch7.0


背景

springboot的data jpa是支持elasticsearch的。在springboot2.3之前,連接es的端口是9300,但實測下來各種版本之間對應關系很復雜,springboot2.3【注:具體哪個版本沒有實測】之后可以配置rest接口方式連接es,理論上可以適配所有版本的es了

過程

依賴

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>

yml配置:

spring:
  elasticsearch:
    rest:
      uris: localhost:9200

接口編寫:

package com.jsfactory.back.api.search.repository;

import com.jsfactory.back.api.search.entity.WorkshopSearch;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

import java.util.List;

public interface WorkshopRepository extends ElasticsearchRepository<WorkshopSearch,String> {

    List<WorkshopSearch> findByDescription(String desc);

    List<WorkshopSearch> findByTownNameOrNameOrDistrictNameOrDescriptionOrCustomerNameOrCityNameOrTags(String townName, String name, String districtName, String description, String customerName, String cityName, String tag);

    void deleteByWorkshopId(Long workshopId);
}

 

測試:

    @Autowired
    private WorkshopRepository workshopRepository;

    @Test
    @Ignore
    public void searchEsTest() {
        String value = "風景";
        List<WorkshopSearch> workshopSearches = workshopRepository.findByTownNameOrNameOrDistrictNameOrDescriptionOrCustomerNameOrCityNameOrTags(value, value, value, value, value, value, value);
        Assert.assertEquals(10, workshopSearches.size());
    }

 

以上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM