如何在数据浏览器中更改响应的default_limit?

您好,

default_limit 设置为 12345678 之类的值的最佳方法是什么?
假设我需要并且想要超过 1000 行。

我弄不清楚你在说哪个 default_limit。我在 site_settings.yml 中没看到它。你想做什么?你是在插件或主题组件中做的吗(因为你发在了 dev)?

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

当然不是唯一的方法。

根据我的链接,您可以分支(fork)该插件,更改常量并克隆您的分支。

您始终可以为该插件提交一个 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

如何以最前沿的方式更改此类“隐藏设置”?

我希望它不需要编辑代码来更改插件的这种基本限制。

您可以使用 rails 控制台更改隐藏的站点设置(如果您有服务器访问权限)。

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:

这种 rail console 方法在软件升级和重启后是否仍然有效?

通过 rails console 更改站点设置与通过 UI 进行更改相同(只是隐藏的设置没有 UI :slight_smile:),因此更改将得以保留,不会受到重建或重启等因素的影响 :+1:

我对通过 API 运行它们的了解不如常规方式,但我认为有一个方法可以在不更改 rails console 中的设置的情况下获取全部 10,000 条记录,相关内容请参见 - Run Data Explorer queries with the Discourse API

3 个赞

谢谢,那个 limit=ALL 参数解决了我的问题。

2 个赞