springspringboot使用jpa集成elasticsearch7.0

Posted 我叫周文阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springspringboot使用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());
    }

 

以上

以上是关于springspringboot使用jpa集成elasticsearch7.0的主要内容,如果未能解决你的问题,请参考以下文章

SpringSpringBoot 2.6.4配置跨域

SpringSpringBoot 2.6.4配置跨域

SpringSpringBoot + SpringSession + Redis 实现Session共享

SpringSpringboot常用注解:@Qualifier(不定时更新)

SpringSpringBoot和SpringCloud的小小区别

SpringSpringBoot2.6.4整合Swagger3.0.0填坑