아, 그렇군요. 제 생각에는 / 도 관련이 없을 것 같은데? 인덱싱이 어떻게 작동하는지는 정확히 모르겠지만, 이 부분을 변경할 수 있는 설정이 있다면 정말 큰 도움이 될 것 같습니다.
URL의 일부로 "somequery"를 입력하면 포럼 어딘가에 해당 URL이 있는 경우 https://domain.com/somequery-article-today라는 결과가 반환되는 것을 확인했습니다. 이는 예상되는 동작입니다. 이 두 가지가 얼마나 관련이 있는지는 모르겠지만, 이 경우 /가 관련이 없다는 점이 흥미로웠습니다.
더 깊이 파고들면서 발견한 또 다른 점은 슬래시로 구분된 문자열(query1/query2)입니다.
query1은 결과를 반환하지만 query2는 결과를 반환하지 않습니다. 제 생각에는 이것이 버그처럼 보이는데, 예상되는 동작이라고 보시나요?
여전히 이것이 검색에 큰 영향을 미친다고 생각하므로 다시 올려봅니다. 최근 겪고 있는 불편한 점들 중 일부는 다음과 같습니다:
GitHub 링크 > 사용자 이름이나 저장소 이름이 검색되지 않음..
X 링크 > 사용자 이름이 검색되지 않음
이 외에도 많은 예시가 있습니다. 검색을 많이 의존하지 않는다면 이러한 문제들은 눈에 띄지 않을 수 있습니다. 검색 결과에서 보이는 부분에 영향을 주는 것이 아니라, 보이지 않는 부분에 영향을 주기 때문입니다. 우리는 항상 어떤 주제에 검색 가능성을 높이기 위해 키워드가 필요한지 계속 고민해야 하는 것이 아닙니다.
이 문제는 특히 초안/스태프 섹션에서 더 두드러집니다. 이 섹션의 게시글은 단순히 완성되지 않은 상태이거나, 때로는 수년간 그대로 방치되기도 하며, 통신 형식이 짧거나 내부적인 경우가 많습니다. 제가 이 키워드를 추가하지 않았다면, 스태프와 내부라는 키워드로 이 게시글을 찾을 수 없었을 것입니다.. 왜냐하면 Discourse가 단순히 이 단어들이 관련이 없다고 판단했기 때문인가요? 왜죠?
이것이 버그가 아니라 검색 색인 결정에 대한 매우 비범한 접근 방식이라는 데에 동의하기가 어렵습니다.
사실 이것은 PostgreSQL의 스테머(stemmer) / 토크나이저(tokenizer)가 작동하는 방식입니다. URL과 같이 혼동이 생길 수 있는 엣지 케이스에 대해 몇 가지 우회 방법을 마련해 두었지만, 전반적으로 이러한 작업의 상당 부분을 pg에 위임하고 있습니다.
흥미롭게도 몇 년 전에는 "URL 내 추가 인덱싱"을 위한 해킹 방식이 있었으나, 인덱스 부피 증가(index bloat) 문제로 @tgxworld가 제거했습니다.
제가 말씀드릴 수 있는 것은, 검색 시 이러한 유형의 엣지 케이스를 고려하고 있다는 것입니다. 하지만 pg fulltext의 기존 프레임워크를 우회하는 해킹 방식을 도입하기까지는 상당한 이유가 필요합니다.