データエクスプローラーでresponseのdefault_limitを変更する方法は?

こんにちは。

default_limit を 12345678 のように設定する最善の方法は何ですか?
1000行以上が必要だと仮定します。

default_limit が何を指しているのか分かりません。site_settings.yml には見当たりません。何をしようとしていますか?また、プラグインまたはテーマコンポーネント(開発に投稿されたため)で実行しようとしていますか?

「いいね!」 1

data-explorer プラグインの default_limit…

「いいね!」 1

わかりました、唯一の方法は次のように別の値を設定することです。
Discourse の設定 UI にもっと良い方法があることを期待していました。

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

確かに唯一の方法ではありません。

私のリンクにあるように、プラグインをフォークし、定数を変更して、フォークをクローンすることができます。

そのプラグインにプラグイン設定をPRすることもできます…

「いいね!」 1

唯一の方法ではありません。ランチャーでそのような変更を行うことも可能です。他のテンプレートでファイルへの変更方法の例を確認できます。

「いいね!」 1

他に方法がない場合、例を教えていただけますか。ありがとうございます。

最近、コードが新しい非表示設定に変更されました…

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

最も先進的な方法で、そのような「隠し設定」をどのように変更できますか?

このプラグインの基本的な制限を変更するためにコードを編集する必要がないことを願っています。

サーバーにアクセスできる場合は、レールコンソールを使用して非表示のサイト設定を変更できます。

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

上限は10,000ですが、これは「画面に」表示される結果の数にすぎないと私は信じています。デフォルトの1000の設定でも、すでに10,000の結果をエクスポートできます。

スプレッドシートなどにエクスポートして結合するためにバッチを取得したい場合は、クエリにページオフセットを追加することが役立つと思います。例:

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

API経由でクエリを実行した際に1000件しか結果が得られませんでした。リクエストごとのオーバーヘッド(データベースへの直接リクエストの100倍)を考慮すると、複数のクエリを実行するよりも、この制限を増やす方が良いです。:slight_smile:

このレールコンソールのアプローチは、ソフトウェアのアップグレードや再起動後も永続しますか?

レールコンソール経由でサイト設定を変更することは、UI経由で行うことと同じです(UIがない隠し設定については、:slight_smile:)。そのため、変更は保持され、再構築や再起動などの影響を受けません :+1:

API経由で実行することに関する私の知識は、通常のやり方ほど良くはありませんが、このトピックのレールコンソールで設定を変更せずに全10,000件を取得する方法があると思います - Run Data Explorer queries with the Discourse API

「いいね!」 3

ありがとうございます。その limit=ALL パラメータで解決しました。

「いいね!」 2