Come cambiare il default_limit della risposta nel data explorer?

Ciao,

Qual è il modo migliore per impostare default_limit su qualcosa come 12345678? Supponiamo che ne abbia bisogno e voglia più di 1000 righe.

Non riesco a capire di quale default_limit stai parlando. Non lo vedo in site_settings.yml. Cosa stai cercando di fare? E stai cercando di farlo in un plugin o in un componente tema (dato che hai postato in dev)?

1 Mi Piace

Il limite predefinito del plugin data-explorer…

1 Mi Piace

Ok, l’unico modo è impostare un altro valore come questo:
Speravo ci fosse un modo migliore nell’interfaccia delle impostazioni di 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

Certamente non l’unico modo.

Come da mio link, puoi fare il fork del plugin, cambiare la costante e clonare il tuo fork.
Potresti sempre fare una PR per un’impostazione del plugin a quel plugin…

1 Mi Piace

Non è l’unico modo. È possibile apportare modifiche come queste con il launcher. Puoi consultare gli altri template per esempi su come apportare modifiche ai file.

1 Mi Piace

Se questo non è l’unico modo, puoi fornire un esempio grazie.

Hanno recentemente modificato il codice per nuove impostazioni nascoste…

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

Come si può modificare una “impostazione nascosta” in modo più avanzato?

Spero non sia necessario modificare il codice per cambiare un limite così basilare del plugin.

È possibile modificare un’impostazione nascosta del sito utilizzando la console Rails (se si dispone dell’accesso al server).

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

Sebbene il limite superiore sia 10.000, e credo che questo sia solo il numero di risultati visualizzati “sullo schermo”, è già possibile esportare 10.000 risultati anche con l’impostazione predefinita di 1000.

Penso che aggiungere un offset di pagina alla tua query sia utile se vuoi recuperare batch da esportare e unire in un foglio di calcolo (ecc.). Ad esempio:

-- [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 Mi Piace

Ho ottenuto solo 1000 risultati quando ho interrogato una query tramite l’API e considerando il significativo overhead per richiesta (fattore 100 rispetto alla richiesta grezza al database) preferirei aumentare quel limite piuttosto che eseguire query multiple. :slight_smile:

Quell’approccio della console Rails è persistente rispetto agli aggiornamenti software e ai riavvii?

Cambiare un’impostazione del sito tramite la console Rails è uguale a farlo tramite l’interfaccia utente (solo per quelle nascoste non c’è un’interfaccia utente :slight_smile:), quindi la modifica rimarrà e non sarà influenzata da ricostruzioni o riavvii, ecc. :+1:

La mia conoscenza sull’esecuzione tramite API non è buona come il modo normale, ma penso che ci sia un metodo per ottenere i 10.000 completi senza cambiare l’impostazione nella console Rails in questo argomento - Run Data Explorer queries with the Discourse API

3 Mi Piace

Grazie, quel parametro limit=ALL lo risolve per me.

2 Mi Piace