사용자 검색 시 최대 20명만 반환됩니다

검색 가능한 사용자 커스텀 필드 값으로 사용자를 검색할 때, Rails 콘솔 쿼리에서 약 200건이 있음을 알고 있음에도 불구하고 항상 최대 20개 결과만 반환됩니다.

이것이 ‘hidden’ 사이트 설정 DISCOURSE_RATE_LIMIT_SEARCH_USER와 관련이 있을 것 같아 해당 값을 50으로 수정해 보았습니다. 이 환경 변수는 인식되었고 ./launcher rebuild app 출력의 마지막 블록에 포함되어 있었지만, 아무런 변화가 없습니다. 이 설정은 검색 결과의 개수가 아니라 레이트 제한과 더 관련이 있을 것으로 추측됩니다(Meta와 Discourse 소스를 검색해 보았지만 이 설정에 대한 문서를 전혀 찾을 수 없었습니다).

이 20개 제한은 Discourse의 내부 제한인가요? 이를 변경할 수 있는 방법이 있을까요?

6개의 좋아요

사용자 이름으로 이를 재현할 수 있습니다. 예를 들어, https://meta.discourse.org/u?name=M은 사용자 20명만 반환합니다. 하지만 메타에서 "M"으로 시작하는 사용자는 그보다 많을 것으로 예상됩니다.

4개의 좋아요

@Moin님, 재현해 주셔서 감사합니다.

검색 시 20명 제한에 대해 제가 할 수 있는 일이 있을까요? 이 문제를 제기한 포럼 팀은 유사한 연구 관심사를 가진 다른 사람들을 찾기 위해 검색 기능을 사용하고 싶어 합니다. 현재 이 임의적으로 보이는 제한 때문에 이 용도로 검색을 거의 사용할 수 없습니다.

이 20명 제한은 어딘가에 설정되어 있을 거 아니에요?

2개의 좋아요

Discourse 팀에서 이 버그에 대한 업데이트가 있나요? 수정될지 알려주시면 좋겠습니다. Meta에서도 재현되었거든요.

그리고 ‘hidden’ 사이트 설정인 DISCOURSE_RATE_LIMIT_SEARCH_USER이 무슨 역할을 하는지 아는 분이 계신가요? (AFAICT) 어디에도 문서화가 되어 있지 않지만, 이 문제와 관련이 있을 수도 있을 것 같습니다.

1개의 좋아요

이것은 버그라기보다는 기능 요청에 가깝습니다. 여기서 페이지네이션을 구현해 주기를 원하시는 거죠.
레이트 리미트는 결과 수와 관련이 없으며, 검색 엔드포인트를 스팸으로 남용하는 것을 방지하기 위한 것입니다.

2개의 좋아요

즉, 특정 검색어를 입력했을 때 200명의 사용자가 일치해도 처음 20명만 표시되고 나머지를 볼 수 있는 방법이 없습니다. 이는 아무리 봐도 불완전한 기능입니다. Discourse의 다른 기능들이 작동하는 방식과 맞지 않는 것 같습니다.

또한, 명확한 이유 없이 결과가 20개로 제한된다는 사실이 문서화되어 있지 않으므로, 이는 버그나 실수처럼 보입니다. 검색 기능을 구현하면서 결과 수에 임의적이고 완전히 고정된 제한을 의도적으로 포함시킨다고 상상할 수 없습니다.

네, 레이트 리밋이 결과 수와 관련이 없다는 점은 알고 있었습니다. 하지만 제가 찾을 수 있는 설정 중 유일하게 이 문제와 관련이 있을 것 같았던 것이었기 때문입니다.

2개의 좋아요

하지만 상상하기 그렇게 어렵지는 않습니다. 백엔드와 프론트엔드 양쪽에 페이지네이션을 구현하는 것은 상당한 양의 작업입니다. 이 기능이 한 번도 요청된 적 없다면 다른 작업들이 우선순위가 높아집니다. 개별적으로 보면 쉬운 일들이 많지만, 해야 할 일이 수천 개에 달하면 선택을 해야 합니다.

2개의 좋아요

일반 검색과 디렉터리 검색 모두에서 처음 20개 결과로 제한하지 않고 모든 결과를 반환하도록 개선할 예정입니다. 다만, 이 작업이 언제 완료될지는 아직 알 수 없으므로, 이 주제를 열어두어 더 많은 사용자들이 겪는 문제인지, 그리고 더 시급하게 우선순위를 높여야 할지 확인해 보겠습니다.

3개의 좋아요