티스토리 뷰

카테고리 없음

검색엔진 변경 후기

절취선 2023. 1. 5. 21:56
반응형

검색엔진 변경 후기

ZOOM 검색 엔진의 계약이 종료되면서 자체 서버를 통해 검색엔진을 만들어낼 필요성이 생겼다.

목표

  1. DataBase 프레임워크는 Mysql을 사용하며 서브 엔진으로는 SPINX 를 사용한다.
  2. 스핑크스 검색엔진에 적합하도록 쿼리를 변경하여 사용한다.

개선점

DB 접근 횟수 최소화

기존 검색 방식에서는 SQL에 접근횟수가 너무 많았다.

회면에는 5개의 테마가 있으며 각 테마별로 20개의 ROW를 가져와야했는데 사용자가 메인화면에 접속하면 6번의 DB접근을 필요로 한다는 것이다.

스핑크스 노이즈 문제 해결

스핑크스 엔진의 문제점은 검색 결과의 노이즈 문제이며 이를 해결하기 위해서는 2가지 방식이 존재했다.

1.N 의 수를 늘리자
2.TOKEN을 많이 가져가자 (검색 단어를 많이 입력하자)

여기서 내가 할 수 있었던 방식은 2번 방식이였다.

검색 LOG DATA를 통해 UX 를 분석했고 많은 사용자들이 문장보다는 단어 검색을 선호했고
90%가 하나의 단어 10% 이상이 두개의 단어를 검색하여 사용한다는 것을 힌트로

검색 결과를 공백을 기준으로 구분하여 TOKEN을 늘려 검색 속도와 검색 결과의 정확도가 향상시켜 퍼포먼스를 향상시킬 수 있었다.

앞으로도 개선해 나갈 문제지만 아쉬웠던 점은 Display Load 속도가 매우 느리다는 점이였다.

  1. 비동기 방식이 아니었고
  2. 광고를 위한 데이터 소스 로드 속도 문제
  3. 각 계열사는 하나의 검색 페이지를 iframe 태그로 사용함

배운 것

다시 초심으로 돌아가 기본부터 다시 시작한 기분이었다.

어려운거라면 스핑크스 쿼리를 사용해야했다는 점과 처음으로 PHP 코드를 사용하여 작성해야 한다는 것이였지만

다행이 쿼리는 Mapper 방식, Viwq는 템플릿 방식의 개발이어서 내가 할 일은 Service Layer의 DB 환경을
스핑크스 엔진에 적합하도록 변경해주기만 하면되었고 추가적으로 기존 ZOOM API에서 PHP 템플릿만 적용하여 View에 적용하면 되었다.

검색엔진 프로젝트 하나로 기업이 사용하는 PHP의 코드 스타일과 나의 기본기를 사용할 수 있었던 좋은 기회였다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함