如何在DSpace统计中显示前50个查看次数最多的项目

How to display the top 50 most viewed items in DSpace statistics

以站点管理员身​​份登录后,您可以通过单击侧边栏(管理)菜单中的统计 link 来访问统计页面。页面看起来像这样(来自 DSpace 演示):

根据上图,显示了所有具有 20 次或更多浏览量的项目。是否可以将其更改为只显示前 50 个(或任意数量)查看次数最多的项目,而不管它是否有 20 个或更多的查看次数?因此,我想将其更改为 已查看的前 50 个项目,而不是 已查看的项目。同样默认情况下,该列表仅显示前 10 个查看次数最多的项目的标题,而其余的只是 url。我如何修改它以显示剩余项目的标题?

更新

我发现 [dspace]/config/dstat.cfg 中的设置 item.flooritem.lookup 如果您更改其默认值,则会被忽略。我在 JIRA 中提交了这个问题:DS-3470.

关于只显示前 50 个项目,这是我的 xslt 代码:

<xsl:template match="dri:div[@id='aspect.artifactbrowser.StatisticsViewer.div.items_viewed']/dri:table[@id='aspect.artifactbrowser.StatisticsViewer.table.reportBlock']">
    <table class="ds-table table table-striped table-hover detailtable">
        <xsl:for-each select="dri:row[position() &lt;=51]">
            <xsl:apply-templates select="."/>
        </xsl:for-each>
    </table>
</xsl:template>

我正在为此实例使用 DSpace 版本 6 (XMLUI)。

提前致谢。

这里设置20的值:https://github.com/DSpace/DSpace/blob/master/dspace/config/dstat.cfg#L66

我相信 header 设置在这里 https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/app/statistics/ReportGenerator.java#L332

我认为报表返回的项目数量无法配置。您可能想看一下代码,这里和下一行:https://github.com/DSpace/DSpace/blob/269af71afb602808a14edf822ad658c3895e0a37/dspace-api/src/main/java/org/dspace/app/statistics/ReportGenerator.java#L331

在该报告中考虑某个项目之前所需的浏览量阈值确实可以在 Terry 提到的文件中配置。

据我所知,标题会一直显示,如果可用的话。在 demo.dspace.org,您的屏幕截图中的链接指向不再存在的项目(但我猜它们仍然存在于 SOLR 核心中)。我相信这不会发生在 "real" DSpace 上,并且只是每周数据刷新的结果。

此致, 贝努瓦

您可以在 dstat.cfg 中配置标题查找的数量(如 Terry 所述)。 https://github.com/DSpace/DSpace/blob/master/dspace/config/dstat.cfg#L71

# limit the number of lookups of titles and authors to the first X.  Lookup
# invokes the java environment so has quite an impact on performance.
item.lookup=10

好的,我发现要反映在 dstat.cfg 中所做的更改,您需要做的就是重新运行 dspace stat-initial。关于仅显示前 50 个查看项目,我使用了以下代码:

<xsl:template match="dri:div[@id='aspect.artifactbrowser.StatisticsViewer.div.items_viewed']/dri:table[@id='aspect.artifactbrowser.StatisticsViewer.table.reportBlock']">
    <table class="ds-table table table-striped table-hover detailtable">
        <xsl:for-each select="dri:row[position() &lt;=51]">
            <xsl:apply-templates select="."/>
        </xsl:for-each>
    </table>
</xsl:template>

希望这对遇到类似问题的人有所帮助。感谢 Andrea、Terry 和 Benoit 的回答。