기존은 자동완성기능 api를 호출할때 crossref의 해당 keyword로 5개의 데이터를 요청하였습니다.
외부의 api에 의존하다보니 시간이 1s ~ 13로 평균적으로는 5s 로 자동완성기능이라기에는 많은 요청 시간과 변동이 심했습니다.
이제 이를 elasticsearch에 캐싱하여, 한번 호출한 연관검색어는 캐싱이 되도록 설정하였습니다. (현재는 그대로 캐싱)
캐싱을 하니 10~12ms로 매우 빠르게 성능 향상을 할 수 있었습니다.
이후에 캐싱작업을 대폭 확대하여 자동적으로 BE측에서 캐싱작업을 수행하도록 보완할 예정입니다.
작업사항
elasticsearch를 docker를 통하여 연결하였습니다.
elasticsearch에 데이터를 넣는 작업을 테스트 하였습니다.
elasticsearch에서 query를 통하여 원하는 데이터 값을 가져오는 작업을 수행하였습니다. (title, author) (해당 알고리즘은 계속하여 유지 보수 필요합니다.)
자동완성기능 api를 호출할 때 elastic search에 해당 키워드의 데이터가 있으면 elastic search의 데이터를 response해주고, 없으면 corssref api를 호출하여, 해당 데이터를 elasticsearch에 집어넣고 response 파이프라인을 추가하였습니다.
개요
기존은 자동완성기능 api를 호출할때 crossref의 해당 keyword로 5개의 데이터를 요청하였습니다. 외부의 api에 의존하다보니 시간이 1s ~ 13로 평균적으로는 5s 로 자동완성기능이라기에는 많은 요청 시간과 변동이 심했습니다. 이제 이를 elasticsearch에 캐싱하여, 한번 호출한 연관검색어는 캐싱이 되도록 설정하였습니다. (현재는 그대로 캐싱) 캐싱을 하니 10~12ms로 매우 빠르게 성능 향상을 할 수 있었습니다. 이후에 캐싱작업을 대폭 확대하여 자동적으로 BE측에서 캐싱작업을 수행하도록 보완할 예정입니다.
작업사항