같은 생각을 표현하는 방법은 매우 다양합니다. 내가 쓴 글의 핵심 단어에 동의어 같은 것을 추가해서, 내 표현과 다른 단어를 사용하는 사람들이 더 쉽게 글을 찾을 수 있게 하되, 글 안에 보이는 단어를 늘어뜨리거나 전역 태그를 추가하지 않는 방법이 있을까요?
예를 들어, 저는 Sublime Text 포럼에서 Sublime Text의 컨텍스트 인식 자동완성(auto complete)이 어떻게 작동하는지 질문했습니다. 그런데 일부 사용자는 'auto complete’라고 쓰는 반면, 다른 이들은 'autocomplete’라고 쓰는 것을 발견했습니다. 'auto complete’가 포함된 글은 'autocomplete’로 검색하는 사람에게 나타나지 않습니다. 또한 많은 사람이 ‘context-aware’ 대신 'smart’라는 용어를 사용합니다. 이러한 관련 단어를 글에 직접 보이지 않게 추가할 수 있는 방법이 있을까요? 이것이 불가능하다는 것을 시사하는 것으로 보이는 해당 주제에 대한 답변을 찾았습니다:
글 맨 아래에 단어 목록을 추가하는 것(아래에서 시연하듯)은 좋은 해결책이 아니라고 생각합니다.
-----begin tags-----
search, tags, metadata, meta data, seo
-----end tags-----
동의합니다. 고급 검색 페이지에 ‘작은 단어 변형 포함’ 옵션이 있으면 큰 도움이 될 것 같습니다. 다만, 모든 게시물의 모든 단어에 대해 모든 동의어를 포함하게 하면 검색 결과에 노이즈가 많이 생길 수 있으므로, 여전히 특정 게시물에만 적용되는 사용자 정의 단어가 있으면 좋겠습니다. 아마 플러그인으로 구현할 수 있는 부분이 아닐까 싶습니다.
철자 오류에 대해서도 동일한 논리를 적용할 수 있습니다. "guidence"로 검색하면 "guidance"가 검색되어야 한다는 것이죠. 하지만 이를 가능하게 하려면 매우 정교한 검색 엔진 작업이 필요합니다. 현재 우리는 Postgres 데이터베이스 엔진의 내장된 검색 기능에 의존하고 있습니다.
현실적으로, 가장 좋은 해결책은 큐레이션(curated editing)이라고 생각합니다. 즉, 직원이나 TL4 사용자가 게시물의 본문이나 제목에서 좋은 검색 결과를 생성하기 위해 필요한 모든 용어를 편집하는 것입니다. 그리고 이것이 바로 TL2 사용자가 모든 게시물의 제목과 카테고리를 편집할 수 있는 주요 이유입니다. 제목과 카테고리(그리고 태그)를 올바르게 설정하는 것이 매우 중요하기 때문에, 가능한 한 많은 신뢰할 수 있는 커뮤니티 멤버들과 이 책임을 공유하고 있습니다!
또한 동일한 결과를 다루는 여러 주제가 존재하는 것도 괜찮습니다. 인간은 같은 주제를 … 완전히 다른 단어로, 거의 공통점이 없이 설명하는 놀라운 타고난 능력을 가지고 있기 때문입니다. 저는 몇 년 전에 이 주제에 대해 글을 쓴 적이 있습니다:
요약하면(TL;DR)
우리가 원하는 것은 질문에 대한 모든 가능한 검색어와 일반적인 변형을 커버하기 위해, 거의 같지만 완전히 같지는 않은 4~5개의 중복 게시물이 있는 것입니다. 또한 이러한 중복 게시물들이 자체적인 답변을 가지는 것도 괜찮습니다. 그렇게 하면 그들을 발견한 사람들이 좋은 답변에 도달하기 위해 또 다른 클릭을 할 필요가 없으니까요.