검색 시 간헐적인 오류 발생

예를 들어 it, it:, “it, it:”, “it, it:”,, "it, it:", 또는 it, it:”를 검색해 보세요. 이 게시물에는 “it, it:”가 포함되어 있음에도 불구하고 검색 결과가 나오지 않습니다.[1]

또한 검색 버튼을 누르면 따옴표 “”""로 변환됩니다. 이 경험은 마음에 들지 않으며, 버그인지 모르겠습니다.

플랫폼: Android용 Edge, try.discourse.org, 안전 모드에서도 재현 가능


  1. 자동 삭제될 경우를 대비하여: 테스트 게시물 내용은 다음과 같습니다: It, “it, it:”, it, oandnxkwbs. ↩︎

it은 검색에서 제외되는 스탑워드(stop word)라고 생각합니다. 이 문제가 실제로 구두점(punctuation) 때문인지 확인하기 위해 해당 목록에 없는 단어로 재현해 보셨나요?
Are specific terms ignored from searches? - #5 by codinghorror

다른 형태로 재현할 수 없습니다. 제가 문제를 확인했던 포럼의 Discourse 버전이 오래되었을 수도 있습니다.

실제로 다시 재현할 수 있을 것 같습니다. we don't로 검색하여 이 게시물을 찾아보세요.

“just-use-interface{}/object; we don’t need generics” 또는 "just-use- interface{} / object ; we don't need generics"로 검색하면 찾을 수 없어요.

하지만 just-use- interface{} / object ; we don't need generics로 검색하면 찾을 수 있습니다.

네, 맞습니다… it은 아예 검색할 수 없습니다… 여기서 시도해 보면 결과가 없습니다. 극도로 높은 빈도로 나타날 가능성이 있는 단어(예: I, the, a, 대명사 등)는 의미 있는 구별을 제공하기에는 너무 자주 나타나므로 인덱싱에서 제외됩니다.

여기서도 마찬가지입니다. wedon't(기술적으로는 dont)는 인덱싱되지 않습니다.

이 상황은 약간 다릅니다.

"just-use- interface{} / object ; we don't need generics"의 경우

이는 절대 작동하지 않습니다. 따옴표는 정확한 일치(exact match)를 요구하지만, 공백으로 인해 정확한 일치가 되지 않기 때문입니다.

"just-use-interface{}/object; we don't need generics"를 검색하는 경우:

원본 게시물 텍스트에는 특수한 인용부호(don’t)가 포함되어 있지만, 검색 기능은 이를 제거하므로 정확한 일치를 반환할 수 없습니다. 이는 게시물과 검색이 완전히 대칭적이지 않음을 의미하며, 개선될 수 있는 부분일 수 있습니다.

이는 따옴표가 없으므로 정확한 일치를 검색하는 것이 아니라, “interface”, “object”, “need”, "generics"라는 용어를 추출하여 해당 게시물이 이 용어들에 대해 가장 잘 맞는 결과로 표시되기 때문입니다.

매우 단순한 단어를 사용해도 찾고자 하는 주제를 찾는 것이 매우 어려웠습니다. 이미 이전에 언급된 적이 있으며, 몇 년 전 Typesense 통합 실험도 있었습니다.

Discourse의 검색 기능을 개선할 실제 계획이 있는지 궁금합니다. 검색은 가장 많이 사용되는 기능 중 하나이며, 리팩토링과 좀 더 세심한 관리가 필요하다고 생각합니다.

아마도 “평문 검색” 옵션을 추가하는 것이 어떨까요? 이를 통해 "" 따옴표와 같은 함정을 비활성화할 수 있습니다.

그리고 궁금한 점이 있는데요. 'we’나 ‘don’t’ 같은 단어는 검색 인덱싱에서 제외되는 기술적인 이유가 있을까요? 너무 흔해서 그런 건가요?

네, 정확합니다.

Stop words(정지 단어)는 매우 흔하고 거의 모든 문서에 나타나며, 구별 가치가 없는 단어입니다. 따라서 전체 텍스트 검색 맥락에서는 무시할 수 있습니다. 예를 들어, 모든 영어 텍스트에는 athe와 같은 단어가 포함되어 있어 인덱스에 저장하는 것이 무의미합니다.

PostgreSQL: Documentation: 18: 12.6. Dictionaries