Dazzling 개발 노트
[Elasticsearch] 스프링부트 연동 - 유사어 검색 본문
쇼핑몰에서 상품 검색이 중요하다는 생각이 들었다.
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
- Build.gradle 의존성 추가
- ElasticsearchConfig 파일 추가, 엘라스틱 연동 설정
- Elastic에 product 테이블의 csv를 이용해 인덱스 생성
- ProductElasticsearch Entity 추가
- ProductElasticService 파일 추가, 원하는 메소드 생성, 쿼리 설정
- productRepository에서 productSeqList를 통해 조회하기
- productservice에서 ProductElasticService 호출하고 원하는 결과 받기