레프트21 검색기능 개선 - (제한적인)유의어 자동 검색
레프트21의 검색기능은 매우 단순합니다. 웹마스터의 자질이 아직 부족한 탓도 있겠지만, 구글이 구글검색엔진을 통해 레프트21의 컨텐츠를 검색할 수 있도록 하는 서비스가 제공되기도 해서 당장 시급히 검색기능을 강화하기보다는 장기적으로 계획을 세워서 만들어야겠다는 생각입니다.
이해를 돕기 위해 검색기능의 원리를 잠시 설명할게요. 현재 검색시스템은 검색창에 A단어와 B단어를 입력하면 A와 B단어를 모두 포함하고 있는 컨텐츠가 검색이 됩니다. 다르게 말하면 and조건 검색입니다. 따라서 A단어 또는 B단어를(or조건) 포함하고 있는 컨텐츠를 모두 검색하지는 않습니다. 좋은 검색엔진은 and조건과 or조건 모두를 사용하면서도 여러가지 변수를 조합해 가장 연관성이 높게 평가되는 글을 상위에 랭크하는 시스템일 겁니다.
유의어 자동 검색??
글을 쓰다보니 검색기능에 대한 욕심도 마구 생기네요..ㅎ 아무튼 저희가 구현한 ‘유의어 자동 검색’은 우리 신문에서 자주 검색되는 단어들 중 외래어이다보니 예전에 쓰던 말과 달라진 단어들을 자동으로 함께 검색할 수 있도록 한 기능입니다. 대표적으로는 맑스와 마르크스입니다. 두 단어 모두 지금도 자주 쓰이나 같은 의미이죠. 더군다나 예전의 자료들과 지금의 자료들에서 사용하는 용어의 일관성도 완벽하지 않으니, 한 단어만 입력했더라도 두 단어를 and조건 검색이 아닌 or조건으로 자동 검색되도록 하였습니다. 아래에 맑스를 검색한 결과를 보실 수가 있습니다.
이 외에 ‘트로츠키’도 옛말인 ‘뜨로츠키’, ‘뜨로츠끼’와 함께 검색이 되구요, 그람시도 옛말과 함께 검색하도록 했습니다. 레프트21의 검색엔진에 등록된 유의어는 이 정돕니다. 그렇다면 이 세가지 유의어중 하나와 유의어로 등록되지 않은 단어와 함께 검색했을 경우 어떻게 엔진이 작동할 까요?
자본주의와 맑스를 함께 검색했다고 가정하겠습니다. 이 경우 수식으로 쓴다면,
자본주의 and (맑스 or 마르크스) -> 검색결과
풀어서 말하면 ‘자본주의’는 반드시 포함되면서 ‘맑스’ 나 ‘마르크스’ 중 적어도 하나이상도 함께 포함되어 있는 문서를 검색하게 됩니다. 즉 자본주의만 포함되어 있어나 ‘맑스’ 또는 ‘마르크스’중 하나만 포함되어 있거나 또는 ‘자본주의’는 포함되어있지 않은 문서는 제외되게 됩니다. 왜냐하면 기본 검색 시스템이 and조건 검색이기 때문이죠.
복잡한 알고리즘이 없기 때문에 이정도만 알면 레프트21의 검색기능을 파악하실 수 있겠죠? 조금이나마 도움이 되셨으면 좋겠습니다. 다만 좀더 고급검색을 원하시는 분은 구글맞춤검색을 활용하시기 바랍니다.