검색 결과의 부분 단어 매칭 이해하기

우리의 기본(vanilla) 검색에서
다음과 같이 검색할 때:
"Pen"으로 검색하면 Pennsylvania 관련 결과가 표시됩니다.
"Penn"과 “Pennsyl” 검색어도 마찬가지입니다.
하지만 "Pennsy"로 검색하면 "Pennsy"에 대해 "결과 없음"이 표시되지만, 다른 검색어는 예상대로 작동합니다.

Firefox에서는 - 이 예시에서 잘못된 검색 문자열 "Pennsy"는 “Pennsylvania 출신 회원” 그룹에 대한 결과 하나만 반환합니다 - 하지만 동작 방식은 마찬가지로 이상합니다.

콘솔에 오류가 없고, XHR 헤더에도 명확한 문제가 없습니다 … 그저 (동작 방식에서 예상할 수 있듯이) 훨씬 작은 응답 객체만 반환됩니다.

이것이 버전 또는 구현 문제인지를 배제하기 위해 metaDotDiscourse에서도 테스트해 보았고, 여기서도 동일한 문제가 발생합니다!

참고: "Jus"도 마찬가지입니다 (많은 결과)
그런데 "Just"는 사용자 결과만 반환합니다.
하지만 "justi"는 포럼 결과를 반환합니다.
두 예시를 고려해 볼 때, 다른 검색 결과에서도 동일한 문제가 발생하는 것으로 보입니다.
흥미롭게도 이는 검색어의 길이에 따라 발생하는 것 같지 않습니다. 그래서 정확히 무슨 일이 일어나고 있는지 제 이해를 훨씬 벗어나는 문제입니다!

이것은 워드 스테밍이라는 기술적인 검색 개념과 관련이 있습니다.

1개의 좋아요

관심을 가져주셔서 감사하지만, 여전히 다음과 같은 문제가 있습니다.

  1. 의도하지 않은 동작 — 콘텐츠가 존재하는 동일한 어근에 대해 결과가 크게 달라지거나 아예 결과가 없는 경우.
  2. 브라우저 간 불일치가 꽤 이상하지 않나요?

최종 사용자는 스템밍(stemming)이 무엇인지 모릅니다. 귀하가 지적했듯이 이는 기술적인 연구 용어이니까요.

게시물 제목이 변경되면, 유사한 문제를 겪는 다른 discourse 배포 환경 사용자들이 포럼에서 검색할 때 이 게시물을 찾지 못할 것입니다. 또한 이제 더 이상 버그 보고서가 아니므로, 동작 방식을 개선하는 데 도움이 될 잠재력이 있는 사람들이 이를 해결할 가치가 있는 문제로 인식하지 못할 것입니다.

검색에서 반드시 찾아야 하는 중요한 항목인 경우, 태그, 특수 단어 또는 기타 구분 가능한 마커를 사용하는지 확인하세요. 검색 스탑워드도 참고할 수 있습니다: