Quando si cercano utenti tramite valori di campi personalizzati ricercabili dell’utente, vengono restituiti al massimo 20 risultati, anche se so da query della console Rails che ce ne sono circa 200.
Pensavo che questo potesse essere correlato all’impostazione del sito ‘nascosta’DISCOURSE_RATE_LIMIT_SEARCH_USER che ho modificato in 50, ma sebbene questa variabile d’ambiente sia stata riconosciuta e fosse contenuta nel blocco finale dell’output di ./launcher rebuild app, non c’è stato alcun cambiamento. Suppongo che questa impostazione abbia più a che fare con la limitazione della velocità (rate) che con il numero di risultati di ricerca restituiti (anche se cercando su Meta e nel codice sorgente di Discourse non sono riuscito a trovare alcuna documentazione di questa impostazione).
Questo limite di 20 è un limite interno di Discourse? C’è un modo per cambiarlo?
Posso riprodurlo con il nome utente. Ad esempio, https://meta.discourse.org/u?name=M restituisce solo 20 utenti. Ma mi aspetto che più utenti su Meta inizino con “M”.
C’è qualcosa che posso fare riguardo a questa limitazione di 20 utenti nella ricerca? Il team del forum che ha sollevato questo problema vuole essere in grado di utilizzare la ricerca per trovare altre persone con interessi di ricerca simili. Al momento, la limitazione apparentemente arbitraria impedisce che la ricerca sia molto utile a questo scopo.
Questo limite di 20 deve essere da qualche parte un’impostazione, vero?
Ci sono aggiornamenti su questo bug da parte del team Discourse? Sarebbe fantastico sapere se verrà risolto, è stato riprodotto qui su Meta.
E qualcuno sa cosa fa l’impostazione del sito ‘nascosta’ DISCOURSE_RATE_LIMIT_SEARCH_USER? (Per quanto ne so) non è documentato da nessuna parte, ma sembra potenzialmente rilevante per questo problema.
È più una richiesta di funzionalità che un bug. Volete che implementiamo la paginazione qui.
Il limite di frequenza non è correlato al numero di risultati, ma serve a evitare che le persone spammino l’endpoint di ricerca.
Quindi, se cerchi un termine e 200 utenti corrispondono a quel termine, ti mostrerà solo i primi 20 e non c’è modo di vedere gli altri. Questa è, nel migliore dei casi, una funzionalità incompleta. Semplicemente non sembra corrispondere a come funzionano altre funzionalità in Discourse.
Inoltre, poiché non è documentato che ci sia questo blocco rigido a 20, senza un motivo chiaro, allora sì, sembrerebbe più un bug o una svista che altro. Non riesco a immaginare qualcuno che implementi una funzione di ricerca e decida consapevolmente di includere un limite arbitrario e completamente fisso al numero di risultati che si possono ottenere.
Sì, ho capito che il rate limit è diverso dal numero di risultati, ma era l’unica impostazione che potevo trovare da qualche parte che sembrasse avere una qualche rilevanza.
Non è poi così difficile immaginarlo. Implementare la paginazione sia nel backend che nel frontend richiede una notevole quantità di lavoro. Se questa funzionalità non è mai stata richiesta, allora altre cose vengono prioritarizzate. Molte cose prese singolarmente sono facili, ma quando hai migliaia di cose da fare; devi fare delle scelte.
Stiamo pianificando di migliorare sia la ricerca generale che la ricerca nella directory per restituire tutti i risultati invece di limitarsi ai primi 20, tuttavia, a questo punto non so quando completeremo questo lavoro, quindi lascerò questo argomento aperto per vedere se questo è un problema riscontrato più ampiamente che dobbiamo dare priorità più urgentemente.