A busca por Usuários retorna no máximo 20 usuários

Ao pesquisar usuários por valores de campos personalizados pesquisáveis, há sempre um máximo de 20 resultados retornados, embora eu saiba por consultas no console Rails que existem cerca de 200.

Pensei que isso poderia estar relacionado à configuração do site ‘oculta’ DISCOURSE_RATE_LIMIT_SEARCH_USER, que alterei para 50, mas embora essa variável de ambiente tenha sido reconhecida e contida no bloco final da saída do ./launcher rebuild app, não houve alteração. Imagino que essa configuração tenha mais a ver com a limitação de taxa do que com o número de resultados de pesquisa retornados (embora pesquisando no Meta e no código-fonte do Discourse, eu não tenha encontrado nenhuma documentação sobre essa configuração).

Esse limite de 20 é um limite interno do Discourse? Existe uma maneira de alterá-lo?

6 curtidas

Consigo reproduzir isso com o nome de usuário. Por exemplo, https://meta.discourse.org/u?name=M retorna apenas 20 usuários. Mas eu espero que mais usuários no Meta comecem com “M”.

4 curtidas

Obrigado @Moin pela reprodução.

Há algo que eu possa fazer sobre essa limitação de 20 usuários na pesquisa? A equipe do fórum que levantou essa questão quer poder usar a pesquisa para encontrar outras pessoas com interesses de pesquisa semelhantes. No momento, a limitação aparentemente arbitrária impede que a pesquisa seja muito útil para isso.

Esse limite de 20 deve ser uma configuração em algum lugar, com certeza?

1 curtida

Alguma atualização sobre este bug da equipe do Discourse? Seria ótimo saber se ele será corrigido, ele foi reproduzido aqui no Meta.

E alguém sabe o que faz a configuração de site oculta DISCOURSE_RATE_LIMIT_SEARCH_USER? Ela não é documentada em lugar nenhum (pelo que entendi), mas parece possivelmente relevante para este problema.

1 curtida

É mais uma solicitação de recurso do que um bug. Vocês querem que implementemos paginação aqui.
O limite de taxa não está relacionado ao número de resultados, mas sim a evitar que as pessoas sobrecarreguem o endpoint de pesquisa.

2 curtidas

Então, se você pesquisar por um termo e 200 usuários corresponderem a ele, ele só mostrará os 20 primeiros e não haverá como ver os outros. Isso é, na melhor das hipóteses, uma funcionalidade incompleta. Simplesmente não parece corresponder a como outras funcionalidades no Discourse funcionam.

Além disso, como não está documentado que há essa parada rígida em 20, sem motivo aparente, então sim, pareceria mais um bug ou uma falha do que qualquer outra coisa. Não consigo imaginar alguém implementando qualquer funcionalidade de pesquisa e decidindo conscientemente incluir um limite arbitrário e completamente fixo para o número de resultados que você pode obter.

Sim, eu imaginei que o limite de taxa fosse diferente do número de resultados, mas era a única configuração que eu conseguia encontrar em qualquer lugar que parecesse ter alguma relevância.

1 curtida

Na verdade, não é muito difícil imaginar. Implementar paginação tanto no backend quanto no frontend é uma quantidade significativa de trabalho. Se fornecer esse recurso nunca foi solicitado, outras coisas recebem prioridade. Muitas coisas, isoladamente, são fáceis, mas quando você tem milhares de coisas para fazer; você tem que fazer escolhas.

2 curtidas

Estamos planejando melhorar tanto a pesquisa geral quanto a pesquisa no diretório para retornar todos os resultados em vez de limitar aos primeiros 20 resultados — no entanto, neste momento não sei quando concluiremos este trabalho, então deixarei este tópico aberto para ver se este é um ponto problemático mais amplamente vivenciado que precisamos priorizar com mais urgência.

3 curtidas