Semantic MediaWiki中#ask表格默认排序不生效,如何解决?
Semantic MediaWiki #ask查询默认排序不生效问题
问题详情
使用Semantic MediaWiki的#ask查询展示属性表格时,已指定sort=Prop和order=asc参数,但表格始终按页面创建顺序展示(示例中Prop值顺序为11,33,22),仅点击表头箭头可触发正确排序。
查询代码示例:
{{#ask: [[Category:Object]] |?Prop | format=table | sort=Prop | order=asc }}
涉及页面内容均为:
[[Category:Object]] [[Prop::XX]]
已将Property:Prop声明为[[Has type::number]],重装SMW后问题仍存在。
当前环境
- Semantic MediaWiki 4.1.0
- Semantic Result Formats 4.0.1
- MediaWiki 1.38.4
解决建议
强制重建语义数据索引
运行MediaWiki和SMW的维护脚本,确保语义数据被正确索引:php maintenance/update.php php extensions/SemanticMediaWiki/maintenance/rebuildData.php -v这能解决大部分因缓存或未正确更新索引导致的排序异常。
调整查询语法,排除干扰
尝试添加mainlabel=-参数,避免页面标题排序逻辑覆盖指定的属性排序:{{#ask: [[Category:Object]] |?Prop | format=table | sort=Prop | order=asc | mainlabel=- }}同时检查
sort、order参数的拼写,确保无大小写或格式错误。验证属性类型与页面数据
进入Property:Prop页面,确认Has type::number已正确生效(页面底部语义摘要会显示类型);重新保存所有带有Prop属性的页面,触发语义数据重新解析。检查配置参数
查看LocalSettings.php,确认没有设置$smwgDefaultSort覆盖查询排序规则;临时关闭查询缓存测试:$smwgQueryCacheType = CACHE_NONE;
内容的提问来源于stack exchange,提问作者Oli Reading
相关产品推荐
相关产品推荐

