Bei der Suche nach Benutzern anhand durchsuchbarer benutzerdefinierter Feldwerte werden immer maximal 20 Ergebnisse zurückgegeben, obwohl ich aus Rails-Konsolenabfragen weiß, dass es etwa 200 gibt.
Ich dachte, dies könnte mit der ‘versteckten’ Site-Einstellung DISCOURSE_RATE_LIMIT_SEARCH_USER zusammenhängen, die ich auf 50 geändert habe. Obwohl diese Umgebungsvariable erkannt wurde und im letzten Block der Ausgabe von ./launcher rebuild app enthalten war, hat sich nichts geändert. Ich vermute, dass diese Einstellung mehr mit der Rate der Begrenzung als mit der Anzahl der zurückgegebenen Suchergebnisse zu tun hat (obwohl ich bei der Suche in Meta und im Discourse-Quellcode keinerlei Dokumentation zu dieser Einstellung finden konnte).
Ist dieses Limit von 20 eine interne Discourse-Grenze? Gibt es eine Möglichkeit, es zu ändern?
Ich kann das mit dem Benutzernamen reproduzieren. Zum Beispiel gibt https://meta.discourse.org/u?name=M nur 20 Benutzer zurück. Aber ich erwarte mehr Benutzer bei Meta, die mit „M“ beginnen.
Kann ich etwas gegen diese 20-Benutzer-Beschränkung bei der Suche tun? Das Forumsteam, das dieses Problem gemeldet hat, möchte die Suche nutzen können, um andere Personen mit ähnlichen Forschungsinteressen zu finden. Derzeit verhindert die scheinbar willkürliche Beschränkung, dass die Suche hierfür von großem Nutzen ist.
Dieses Limit von 20 muss doch irgendwo eine Einstellung sein?
Das ist eher eine Funktionsanfrage als ein Fehler. Sie möchten, dass wir hier eine Paginierung implementieren.
Das Ratenlimit hängt nicht von der Anzahl der Ergebnisse ab, sondern soll verhindern, dass Personen den Suchendpunkt spammen.
Wenn Sie also nach einem Begriff suchen und 200 Benutzer übereinstimmen, werden Ihnen nur die ersten 20 angezeigt und es gibt keine Möglichkeit, die anderen zu sehen. Das ist bestenfalls eine unvollständige Funktion. Es scheint einfach nicht dazu zu passen, wie andere Funktionen in Discourse funktionieren.
Da es auch nicht dokumentiert ist, dass es diese harte Grenze bei 20 gibt, ohne klaren Grund, dann ja, es scheint eher ein Fehler oder eine Nachlässigkeit als alles andere zu sein. Ich kann mir nicht vorstellen, dass jemand eine Suchfunktion implementiert und bewusst beschließt, eine willkürliche und völlig feste Grenze für die Anzahl der Ergebnisse einzufügen, die Sie erhalten können.
Ja, ich dachte, Rate Limit sei anders als die Anzahl der Ergebnisse, aber es war die einzige Einstellung, die ich irgendwo finden konnte, die anscheinend irgendeine Relevanz hatte.
Es ist jedoch nicht sehr schwer, sich das vorzustellen. Die Implementierung der Paginierung sowohl im Backend als auch im Frontend ist ein erheblicher Arbeitsaufwand. Wenn diese Funktion noch nie angefordert wurde, werden andere Dinge priorisiert. Viele Dinge sind für sich genommen einfach, aber wenn man Tausende von Dingen zu tun hat, muss man Entscheidungen treffen.
Wir planen, sowohl die allgemeine Suche als auch die Verzeichnissuche zu verbessern, um alle Ergebnisse zurückzugeben, anstatt die ersten 20 Ergebnisse zu begrenzen. Zu diesem Zeitpunkt weiß ich jedoch nicht, wann wir diese Arbeit abschließen werden, daher lasse ich dieses Thema offen, um zu sehen, ob dies ein weiter verbreitetes Problem ist, das wir dringender priorisieren müssen.