현재 crossref api를 자동완성 api에서 호출 시에 최대 1만개의 데이터를 캐싱하기 위해 1000개 단위로 api url을 큐에 담아두고, 이를 interval을 통해 주기적으로 큐에서 url을 꺼내서 crossref api를 호출 한 뒤 해당 response 값을 엘라스틱서치에 캐싱하는 작업을 수행 하였습니다.
그러나 1만개의 단어만 캐싱하였을 때에 대부분의 단어가 캐싱되었다고 판단하고 온갖 키워드를 엘라스틱 서치가 잡아내는 이슈가 있습니다.
예)
stone이라는 키워드로 자동완성api 호출
stone이라는 키워드의 논문 1만개를 엘라스틱 서치에 캐싱
marvel이라는 키워드로 자동 완성 api 호출 ("title": "Jonoah and the Green Stone" 해당 논문도 캐싱 되었다고 판단)
=> 1만개만 캐싱했는데도 단어 기준으로 엘라스틱 서치를 서치하다 보니, 해당 키워드랑 큰 관련 없는 자동 완성 기능이 발생
이슈 내용
현재 crossref api를 자동완성 api에서 호출 시에 최대 1만개의 데이터를 캐싱하기 위해 1000개 단위로 api url을 큐에 담아두고, 이를 interval을 통해 주기적으로 큐에서 url을 꺼내서 crossref api를 호출 한 뒤 해당 response 값을 엘라스틱서치에 캐싱하는 작업을 수행 하였습니다. 그러나 1만개의 단어만 캐싱하였을 때에 대부분의 단어가 캐싱되었다고 판단하고 온갖 키워드를 엘라스틱 서치가 잡아내는 이슈가 있습니다. 예)
엘라스틱서치의 탐색 기준을 더 엄격하게 변경할 예정
기대 결과