Wie ändere ich den response default_limit im Data Explorer?

Hallo,

Was ist der beste Weg, um default_limit auf etwas wie 12345678 zu setzen? Angenommen, ich benötige und möchte mehr als 1000 Zeilen.

Ich kann nicht herausfinden, von welchem default_limit Sie sprechen. Ich sehe das nicht in site_settings.yml. Was versuchen Sie zu tun? Und versuchen Sie, es in einem Plugin oder einer Theme-Komponente zu tun (da Sie im Entwicklerbereich gepostet haben)?

1 „Gefällt mir“

Das default_limit-Plugin des Datenexplorers…

1 „Gefällt mir“

Okay, der einzige Weg ist, einen anderen Wert wie folgt festzulegen:
Ich hatte gehofft, es gäbe eine bessere Möglichkeit in der Discourse-Einstellungsoberfläche.

./launcher enter app
cd /var/www/discourse/plugins/discourse-data-explorer/
sed -i 's/QUERY_RESULT_DEFAULT_LIMIT = 1000/QUERY_RESULT_DEFAULT_LIMIT = 12345678/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/QUERY_RESULT_MAX_LIMIT = 1000/QUERY_RESULT_MAX_LIMIT = 12345678/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb

Sicherlich nicht der einzige Weg.

Wie in meinem Link angegeben, können Sie das Plugin forken, die Konstante ändern und Ihren Fork klonen.
Sie könnten immer eine Plugin-Einstellung für dieses Plugin per PR einreichen …

1 „Gefällt mir“

Nicht der einzige Weg. Es ist möglich, solche Änderungen mit dem Launcher vorzunehmen. Sie können sich andere Vorlagen ansehen, um Beispiele dafür zu erhalten, wie Sie Dateien ändern können.

1 „Gefällt mir“

Wenn dies nicht der einzige Weg ist, können Sie dann ein Beispiel geben, danke.

Sie haben kürzlich den Code für neue versteckte Einstellungen geändert…

cd /var/discourse
./launcher enter app
sed -i 's/QUERY_RESULT_DEFAULT_LIMIT = 1000/QUERY_RESULT_DEFAULT_LIMIT = 10000000/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/QUERY_RESULT_MAX_LIMIT = 1000/QUERY_RESULT_MAX_LIMIT = 10000000/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/default: 1000/default: 10000000/g' plugins/discourse-data-explorer/config/settings.yml
sed -i 's/max: 10000/max: 10000000/g' plugins/discourse-data-explorer/config/settings.yml
rails c
SiteSetting.data_explorer_query_result_limit=1000000
exit
exit
reboot

Wie kann man eine solche „versteckte Einstellung“ auf die fortschrittlichste Weise ändern?
Ich hoffe, es ist nicht erforderlich, Code zu bearbeiten, um ein so grundlegendes Limit des Plugins zu ändern.

Sie können eine versteckte Website-Einstellung über die Rails-Konsole ändern (wenn Sie Serverzugriff haben).

cd /var/discourse
./launcher enter app
rails c
SiteSetting.data_explorer_query_result_limit = 10000

Obwohl die Obergrenze 10.000 beträgt, und ich glaube, dass dies nur die Anzahl der Ergebnisse ist, die „auf dem Bildschirm“ angezeigt werden – können Sie bereits 10.000 Ergebnisse exportieren, selbst wenn die Einstellung auf den Standardwert von 1000 gesetzt ist.

Ich denke, das Hinzufügen eines Seiten-Offsets zu Ihrer Abfrage ist nützlich, wenn Sie Stapel zum Exportieren und Zusammenfügen in einer Tabelle (usw.) abrufen möchten. z. B.:

-- [params]
-- integer :page = 0
-- integer :limit = 10000

SELECT
    category_id,
    created_at::date,
    id AS topic_id,
    views
FROM topics
WHERE deleted_at IS NULL
ORDER BY created_at DESC
OFFSET :page * :limit
LIMIT :limit
2 „Gefällt mir“

Ich habe nur 1000 Ergebnisse erhalten, als ich eine Abfrage über die API ausgeführt habe, und angesichts des erheblichen Mehraufwands pro Anfrage (Faktor 100 gegenüber der reinen Datenbankabfrage) erhöhe ich lieber dieses Limit, als mehrere Abfragen durchzuführen. :slight_smile:

Ist dieser Rail-Konsolenansatz bei Software-Upgrades und Neustarts persistent?

Das Ändern einer Website-Einstellung über die Rails-Konsole ist dasselbe wie die Änderung über die Benutzeroberfläche (nur für die versteckten gibt es keine Benutzeroberfläche :slight_smile:), sodass die Änderung bestehen bleibt und nicht durch Neuerstellung oder Neustarts usw. beeinträchtigt wird. :+1:

Mein Wissen über die Ausführung über die API ist nicht so gut wie bei der regulären Methode, aber ich denke, es gibt eine Methode, die vollen 10.000 abzurufen, ohne die Einstellung in der Rails-Konsole zu ändern, in diesem Thema – Run Data Explorer queries with the Discourse API

3 „Gefällt mir“

Vielen Dank, dieser limit=ALL Parameter löst es für mich.

2 „Gefällt mir“