Comment changer la limite par défaut de réponse dans l'explorateur de données ?

Salut,

Quelle est la meilleure façon de définir default_limit sur quelque chose comme 12345678 ?
Suppose que j’en ai besoin et que je veux plus de 1000 lignes.

Je n’arrive pas à comprendre de quelle default_limit vous parlez. Je ne la vois pas dans site_settings.yml. Qu’essayez-vous de faire ? Et essayez-vous de le faire dans un plugin ou un composant de thème (puisque vous avez posté dans dev) ?

1 « J'aime »

La limite par défaut du plugin data-explorer…

1 « J'aime »

Ok, la seule façon est de définir une autre valeur comme ceci :
J’espérais qu’il y avait une meilleure façon dans l’interface des paramètres de Discourse.

./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

Certainement pas la seule façon.

Comme indiqué dans mon lien, vous pouvez forker le plugin, changer la constante et cloner votre fork.
Vous pourriez toujours faire une PR pour ajouter un paramètre à ce plugin…

1 « J'aime »

Ce n’est pas la seule façon. Il est possible d’apporter des modifications comme celles-ci avec le lanceur. Vous pouvez consulter les autres modèles pour des exemples sur la façon de modifier des fichiers.

1 « J'aime »

Si ce n’est pas la seule façon, pouvez-vous fournir un exemple, merci.

Ils ont récemment changé le code pour de nouveaux paramètres cachés…

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

Comment peut-on modifier un tel « paramètre caché » de la manière la plus moderne ?

J’espère que cela ne nécessitera pas de modifier le code pour changer une limite aussi basique du plugin.

Vous pouvez modifier un paramètre de site caché en utilisant la console Rails (si vous avez accès au serveur).

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

Bien que la limite supérieure soit de 10 000, et je crois que ce n’est que le nombre de résultats affichés « à l’écran » - vous pouvez déjà exporter 10 000 résultats même avec le paramètre par défaut de 1000.

Je pense qu’ajouter un décalage de page à votre requête est utile si vous souhaitez récupérer des lots à exporter et à joindre dans une feuille de calcul (etc.). par exemple :

-- [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 « J'aime »

Je n’ai obtenu que 1000 résultats lors d’une requête via l’API et, compte tenu du surcoût important par requête (facteur 100 par rapport à la requête brute vers la base de données), je préfère augmenter cette limite plutôt que d’effectuer plusieurs requêtes. :slight_smile:

Cette approche de console Rails est-elle persistante lors des mises à niveau logicielles et des redémarrages ?

Changer un paramètre de site via la console Rails est identique à le faire via l’interface utilisateur (c’est juste que pour ceux qui sont cachés, il n’y a pas d’interface utilisateur :slight_smile:), donc le changement sera permanent et ne sera pas affecté par les reconstructions ou les redémarrages, etc. :+1:

Mes connaissances sur leur exécution via l’API ne sont pas aussi bonnes que la méthode habituelle, mais je pense qu’il existe une méthode pour obtenir les 10 000 complets sans changer le paramètre dans la console Rails dans ce sujet - Run Data Explorer queries with the Discourse API

3 « J'aime »

Merci, ce paramètre limit=ALL le résout pour moi.

2 « J'aime »