ElasticSearch 없이 전국 도서관 도서 검색 엔진 만들기 (1)

태량·2023년 7월 25일
0
post-thumbnail

안녕하세요. 23년 3월 31일에 시작해 공식적으로는 23년 5월 12일에 팀 프로젝트가 종료 됐지만, 팀원들이 취업하고 다들 바쁜 관계로 나홀로 개선하며 23년 7월 24일에 드디어 만족스런 검색 엔진을 완성하게 됐습니다.
(저도 취업을 해야하지만, 도전한 건 끝까지 어떻게든 끝장을 보지 않으면 안돼서...)

이 프로젝트는 '왜 RDBMS로는 검색 엔진을 만들 수 없는가?' 라는 의문에서 시작 된 프로젝트 입니다. 부트 캠프 항해99에서 마지막 실전 프로젝트로 실시한 프로젝트이며 특징은 '챌린지 프로젝트'로써 다른 서비스 팀과는 다르게 백엔드 4명이서만 진행한 프로젝트이기에 UI나 프론트 코드는 퀄리티가 떨어질 수 있습니다.

결론부터 말하고 가자! https://mapbook.pro/

Mysql만으로 시중 검색 엔진에 뒤지지 않는 도서 검색 엔진을 만드는 데 성공!!

RDBMS로 검색 엔진으로도 검색 엔진 만들 수는 있다. RDBMS를 사용하기 전 비정규화도 하고, Java단에서 많은 도움을 받으면 가능 하다.

RDBMS이건 ElasticSearch이건 중요한 건 사용자 검색어가 자연어라는 점에서 이것을 어떻게 분석하고 처리해서 사용자에게 높은 검색 품질을 제공 할 것이냐 이다.

MapBook이란?

  • 전국 도서관의 도서 검색(Book)을 통합 검색 할 수 있고, 내 주변에 대출 가능한 도서관이 어디 있는지 지도(Map)로 보여준다.
    => 따라서 Map+Book = MapBook!

MapBook이 가지는 기능

  1. ElasticSearch와 비교해도 손색 없는 빠른 검색 속도
  1. 대출 횟수 기반한 상위 도서 노출 시스템
  • 사용자가 도서 대출을 하는데 있어서 어떤 책이 많이들 빌렸는지를 알 수 있어 도서 선택에 도움을 받을 수 있다.
    (도서관은 형평성 때문에 이 시스템을 적용하지 못한다.)
  1. 검색어 자동 완성 기능
  1. 한영 오타 자동 전환 검색 기능

  2. 영어와 한글을 상호 보완하며 검색 가능

  1. 클릭 한번에 내 주변 대출 가능 도서관 찾기

도서 데이터는 총 374만건 정도이며, 23년 4월 도서까지 최신화된 상태. 출간된 도서라도 도서관 소장이 기준이기 때문에 없는 도서도 간혹 있을 수 있다.

MapBook의 한계

  1. 오타 수정 기능이 없다 ex) 샴성전자 -> 삼성전자로 오타 수정하여 검색

  2. 동의어나 유의어 기능이 없다.

프로젝트 개발 과정은 시리즈 별로 정리해서 올리겠습니다~

profile
좋은 영향력과 교류를 위하여

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기