如何快速完整展示MediaWiki属性Type d'événement的所有取值?
问题:快速获取Semantic MediaWiki属性“Type d'événement”的所有唯一取值
背景
我有一个名为Type d'événement的MediaWiki属性,累计使用次数达33190次,需要展示该属性的所有不同取值。
当前尝试的方案及问题
方案1:使用#arraydefine+#ask组合
代码如下:
Toutes les valeurs existantes : {{#arraydefine: my.array | {{#ask: [[Type d'événement::+]] |mainlabel=- |headers=hide |?Type d'événement |limit=10000|searchlabel= }} |, | print=list, sort=asc, unique }} [[Has type::text| ]]
注:“Toutes les valeurs existantes”意为“所有可能取值”
该方案存在两个核心问题:
- 执行速度极慢
- 受限于
limit=10000的参数限制,无法获取全部取值,存在遗漏风险
方案2:使用#ask的valuerank格式
该方案参考Semantic MediaWiki官方文档,代码如下:
{{#ask: [[Type d'événement::+]] |headers=hide |?Type d'événement |limit=10000|format=valuerank }}
问题:同样存在执行缓慢、取值不全的问题,未解决核心需求。
已知可行的参考实现
- PageForms扩展实现的高级搜索表单中,“Type d'événement”对应的下拉框可以快速、完整展示该属性的所有取值
- 系统自带的“按属性搜索”页面,也能快速实现该属性所有唯一取值的查询
可尝试的解决方向
目前未安装Lua扩展,但可以考虑通过修改服务器端的PHP或JS文件来实现需求。
内容的提问来源于stack exchange,提问作者aphfug
相关产品推荐
相关产品推荐

