개인적으로 Elasticsearch가 pogresql에 비해 어떤 이점이 있을지 궁금하여 postgresql로 검색을 구현한뒤 둘을 비교해 보았습니다.
물론 기본적인 LIKE query를 이용한 검색과 Elasticsearch의 검색을 비교할 수도 있었지만 이는 Postgresql한테도, Elasticsearch한테도 공정한거 같지 않아 최대한 Elasticsearch가 제공하는 검색 Quality에 맞출려고 노력했습니다.
이를 위해 Nori 형태소 분석기와 tsvector를 이용해 postgresql 검색을 구현하였습니다.
대략적인 작동 방식은 다음과 같습니다.
Postgresql에서 어휘소를 쪼개지 않고 Spring딴에서 어휘소로 쪼개는 이유는 AWS RDS postgresql에 nori 형태소 분석기를 설치 하는 방법을 찾을 수 없었기 때문입니다.
저희가 많은 양의 경매 데이터를 가지고 있지 않기 때문에 wikipedia에서 제공하는 데이터를 사용했습니다.
이는 아래 링크에서 다운로드 할 수 있습니다.