Dazzling 개발 노트

[Elasticsearch] 스프링부트 연동 - 유사어 검색 본문

DevOps/Elastic

[Elasticsearch] 스프링부트 연동 - 유사어 검색

dj._.dazzling 2024. 2. 11. 20:19

 

쇼핑몰에서 상품 검색이 중요하다는 생각이 들었다.

 

LG TV를 검색했을 때 보통의 쇼핑몰은

LG ~~~ TV와 더불어 LG가 아니더라도 유사 TV 제품까지 검색된다.

 

그렇지만 일반 쿼리로 검색하면

LG TV 라고 검색했을 때

LG와 TV가 붙어있지 않은 검색어는 결과가 나오지 않는다.

 

이 부분을 해결하기 위해 Elasticsearch 검색을 도입시키고자 했다.

이미 프로젝트가 JPA로 세팅이 다 되어있고, 데이터도 MySql에 들어있는 상황, 프로젝트 마감 기간이 일주일도 남지 않은 점을 고려해

최소한의 노력으로 결과를 도출하고자 했다.

 

개발 환경

Spring Boot 2.6.5
Gradle
Java 11

Elastic Cloud 8.12

 

 

  1. Build.gradle 의존성 추가    
  2. ElasticsearchConfig 파일 추가, 엘라스틱 연동 설정
  3. Elastic에 product 테이블의 csv를 이용해 인덱스 생성
  4. ProductElasticsearch Entity 추가
  5. ProductElasticService 파일 추가, 원하는 메소드 생성, 쿼리 설정
  6. productRepository에서 productSeqList를 통해 조회하기
  7. productservice에서 ProductElasticService 호출하고 원하는 결과 받기