ランキング

  • 目的・用途

本機能は、アイテムの閲覧回数やファイルのダウンロード回数やアイテムの作成ユーザーなどのランキングを閲覧する機能である。

  • 利用方法

【Administration > Setting (設定) > Ranking (ランキング表示)からランキングの機能を設定し、トップ画面からランキングのリンクを押下することで、設定に沿ったアイテムがランキング方式で表示される。

  • 利用可能なロール

ロール システム
管理者
リポジトリ
管理者
コミュニティ
管理者
登録ユーザー 一般ユーザー ゲスト
(未ログイン)
利用可否
  • 機能内容

1. ランキングに対して設定する

  • リポジトリ管理者として、【Administration > Setting (設定) > Ranking (ランキング表示)画面】にランキングの機能に対して設定を実行する

    • 設定項目は以下の通りである
# 設定項目 設定方法 デフォルト 概要
1 「ランキングの表示/非表示」(Show/Hide Ranking) ・「オン」(On) 「オフ」(Off) Web画面でランキングタブの表示可否を設定する
・「オフ」(Off)
2 「新着アイテムとして判断する期間」(Period To Judge As New Item) N日(Day) 14日 新規に登録されたアイテムとして判断する期間。アイテム登録日からの経過日数を指定する。ただし、設定できる範囲は1日~30日とする
3 「統計期間」(Statistical Period) N日(Day) 365日 ランキングとして表示する期間。本日から何日前までを集計期間とするかを指定する。ただし、設定できる範囲は1~3650日とする
4 「表示する順位」(Display Rank) N位 10位 ランキングとして表示する順位を指定する.最大値を100位までとする
5 「ランキング」(Rankings) ・「最も閲覧されたアイテム」(The Most Viewed Items) チェックボックスの
チェックなし
Web画面で表示するランキングの種類を設定する。チェックボックス方式で、複数選択可能とする。
チェックの付いた項目をWeb画面のランキングタブに表示する。
・「最もダウンロードされたアイテム」(Most Downloaded Items)
・「最もアイテムを作成したユーザー」(User Who Created The Most Items)
・「最も検索されたキーワード」(Most Searched Keywords)
・「新着アイテム」(New Items)
  • 「保存」(Save)ボタンを押すと、画面上の設定情報を保存し、メッセージを画面上部に表示する
    メッセージ:
    日本語:「設定を変更しました」
    英語:「Successfully Changed Settings.」

  • 以下のエラー条件に1つでも当てはまる場合、「保存」(Save)ボタンを押すと、エラーメッセージを画面上部に表示する
    エラー条件:
    ・「新着アイテムとして判断する期間」で1~30以外の自然数を設定した場合
    ・「統計期間」で1~3650以外の自然数を設定した場合
    ・「表示する順位」で1~10以外の自然数を設定した場合
    エラーメッセージ:
    日本語:「設定変更に失敗しました」
    英語:「Failurely Changed Settings.」

  • 「新着アイテムとして判断する期間」「統計期間」「表示する順位」で文字列や小数、負の値、0など、上記のエラー条件以外の値を入れた場合、入力欄に「指定されている形式で入力してください」というポップアップを表示する

  • 「削除」(Delete)ボタンを押すと、入力中の値が破棄され、入力前の保存された設定情報を表示する

2. ランキングの情報を表示する

  • トップページから「ランキング」(Ranking)タブを押下すると、ランキング画面に遷移する

    • 【Administration > Setting (設定)> Ranking (ランキング表示)画面】の「ランキング」(Ranking)の設定に応じて、チェックを入れている項目をランキング画面に表示する

    • 「ランキング」(Ranking)タブはゲスト以上のユーザーが閲覧可能とする

    • 画面上部に集計期間を表示する。

      • 表示方法:『集計期間:YYYY-MM-DD ~ YYYY-MM-DD』

      • 集計期間は【Administration > Setting (設定)> Ranking (ランキング表示)画面】の統計期間を参照する

    • 画面の構成は、【Administration > Setting (設定)> Ranking(ランキング表示)画面】に表示するランキングの項目で、チェックボックスにチェックがついている項目のランキングが表示される

    • 画面に表示される順位は、【Administration > Setting (設定) > Ranking(ランキング表示)画面】のチェックボックスの項目順で表示される

    • アイテムが直接紐づいているインデックスとその上位のインデックスについて、1つでも非公開の設定のものがある場合はランキング画面に表示しない。また、ログイン時はどのユーザでログインをしても、ゲストと同じランキング画面を表示する

  • ランキング画面に表示項目は以下の通りである

    • 「最も閲覧されたアイテム」(Most Viewed Item)

      • 表示方法:『n (集計値) アイテム名』
        「n」:順位
        「(集計値)」:該当アイテムの集計値(全バージョンのcountの合計値)
        「アイテム名」:該当アイテム名

      • アイテム名はリンク形式で表示される。リンクを押下すると、該当アイテムの詳細画面へ遷移する
        ※権限によってアイテムの詳細画面が表示できない場合は、参照権限がない旨の画面を表示する

    • 「新着アイテムとして判断する期間」(Period To Judge As New Item)

      • 表示方法:『n (集計値) アイテム名』
        「n」:順位
        「(集計値)」:該当アイテムの集計値
        「アイテム名」:該当アイテム名

      • アイテム名はリンク形式で表示される。リンクを押下すると、該当アイテムの詳細画面へ遷移する
        ※権限によってアイテムの詳細画面が表示できない場合は、参照権限がない旨の画面を表示する

    • 「最もダウンロードされたアイテム」(Most Downloaded Items)

      • 表示方法:『n (集計値) アイテム名』
        「n」:順位
        「(集計値)」:該当アイテムの集計値
        「アイテム名」:該当アイテム名

      • アイテム名はリンク形式で表示される。リンクを押下すると、該当アイテムの詳細画面へ遷移する
        ※権限によってアイテムの詳細画面が表示できない場合は、参照権限がない旨の画面を表示する

    • 「最もアイテムを作成したユーザー」(User Who Created The Most Items)

      • 表示方法:『n (集計値) ユーザ名』
        「n」:順位
        「(集計値)」:集計値
        「アイテム名」:該当ユーザ名

      • ユーザ名はリンク形式にはしない(画面表示のみ)

      • 表示するデータにユーザ名が存在しない場合は、「None」として表示させる

    • 「最も検索されたキーワード」(Most Searched Keywords)

      • 表示方法:『n 位(集計値) キーワード』
        「n」:順位
        「(集計値)」:集計値
        「キーワード」:検索されたキーワード

      • 簡易検索の検索フィールドに入力されたキーワードを集計対象とする

      • キーワードを入力せずに検索した場合(全件検索)は、ランキングの集計対象外とする
        その他、簡易検索以外の検索(詳細検索、インデックス検索、ファセット検索など)に関してもランキングの集計対象外とする

      • キーワードはリンク形式で表示される。リンクを押下すると、該当のキーワードで検索したときの検索結果画面へ遷移する

    • 「新着アイテム」(New Items)

      • 表示方法:『登録日 アイテム名』

      • アイテム名はリンク形式で表示される。リンクを押下すると、該当アイテムの詳細画面へ遷移する
        ※権限によってアイテムの詳細画面が表示できない場合は、参照権限がない旨の画面を表示する

  • 関連モジュール

  • weko_items_ui

  • invenio_stats

  • weko_admin

  • 処理概要

  • 対応しているモジュール:weko_items_ui, invebio_stats

  • トップ画面からランキングのリンクを押下する(/ranking)ことで、weko_items_ui.views.rankingが呼び出される。

    • weko_admin.models.RankingSettingを呼び出し、【Administration > Setting (設定) > Ranking (ランキング表示)】で設定したランキングの条件をranking_settingsテーブルから取得する。

    • weko_items_ui.utils.get_rankingを呼び出す。

      • inveio_stats.util.QueryRankingHelper.getを呼び出してログ集計した結果を取得する。

      • weko_items_ui.utils.get_permission_recordを呼び出して、「公開」となっているアイテムをランキングリストとして取得する。

    • flask.templating.render_templateを呼び出してランキングリストを渡し、「WEKO_ITEMS_UI_RANKING_TEMPLATE」に沿ってランキングを作成して表示する。

  • 「WEKO_ITEMS_UI_RANKING_TEMPLATE」:weko_items_ui.config #L57

    • 設定値:`weko_items_ui/ranking.html’

  • 集計方法について

    • 集計期間はAdmin側の集計期間で設定した日数とする

    • 集計するタイミングは定期バッチ(日次)で収集する

    • 事前集計を定期的に実行するタイミングは、Config設定で変更可能とする

    • 「Ranking」タブを表示したタイミングで、事前に集計しておいたランキング情報を参照して表示する

    • 最も閲覧されたアイテムランキングの集計方法について

      • 集計対象は集計開始時点で「公開」されているものとする

      • 閲覧回数は、事前にinvenio-statsにてログ集計した値とする

      • 閲覧回数は、全ドメインで集計した値とする

      • 所属インデックスの閲覧件数をまとめてカウントする( #21580#note-22 )

    • 最もダウンロードされたアイテムの集計方法について

      • 集計対象は集計開始時点で「公開」されているものとする

      • ダウンロード回数は、事前にinvenio-statsにてログ集計した値とする

      • ダウンロード回数は、全ドメインで集計した値とする

      • ダウンロード回数は、通常ファイルダウンロード回数を対象とする

    • 最もアイテムを作成したユーザーの集計方法について

      • ユーザ数は、事前にinvenio-statsにてログ集計した値とする

      • ユーザ数は、全ロールで集計した値とする

    • 最も検索されたキーワードの集計方法について

      • キーワードは、事前にinvenio-statsにてログ集計した値とする

      • ランキング画面にあるキーワードのリンクを押下した場合も集計対象とする

    • 新着アイテムの集計方法について

      • 集計時を基点に、Admin側で設定した「新着アイテムとして判断する期間」の日数の前までの期間(経過日数)を新着アイテムの対象とする
        【例】「新着アイテムとして判断する期間」を5日として、4/9に集計したときには、4/4~4/9に登録されたアイテムが新着アイテムとなる
  • 集計結果について

    • 最も閲覧されたアイテムランキング、最もダウンロードされたアイテム、最もアイテムを作成したユーザー、最も検索されたキーワード

      • 出力順は、集計した値の多い順とする

      • 集計値が同じもの(同一順位のもの)は、順位は同じものとし、以降の順位は同一のものだけ繰り下がった順位とする
        例えば、3位のアイテムが3つある場合、1位, 2位, 3位, 3位, 3位, 6位という並びになる

      • 集計値が同じもの(同一順位のもの)の出力順はアイテム名の順にソートする

      • 集計値が同じもの(同一順位のもの)のうち、表示する順位を超える場合、表示する順位の数で切る
        例えば、3位のアイテムが3つ(A, B, C)あり、表示する順位が4位までとした場合、1位, 2位, 3位(A), 3位(B)とする

    • 新着アイテム

      • 出力順は、新着アイテムの登録日の日付が新しい順とする

      • 登録日が同じものは登録時間の新しい順とする

      • 登録日が同じもののうち、表示する順位を超える場合、表示する順位の数で切る
        例えば、4/4のアイテムが5つあり、表示する順位が3位までとした場合、登録日時の新しい上位3つを表示する

【補足】

  • 最も検索されたキーワードの集計について、"キーワード"とは検索窓から入力した文字列そのままのことを指す。
    たとえば「Hello World」と入力して検索した場合、「Hello World」として集計される(HelloとWorldでキーワードは分割されない)

  • 最も検索されたキーワードに除外するキーワードの設定はしていない。
    そのため、冠詞などのストップワードやネガティブなワードなどは除外せずにランキングに表示される

  • "非公開アイテム"、"アイテムが直接紐づいているインデックスとその上位のインデックスに1つでも非公開の設定のものがある"、"アイテムの所属インデックスが未来の公開日"の場合、
    最も閲覧されたアイテム、最もダウンロードされたアイテム、新着アイテムに該当のアイテムは表示されない。

  • ログイン時はどのユーザでログインをしても、ゲストと同じランキング画面を表示する

  • ランキングの[New Items]に削除済アイテムは表示対象外とする

  • アイテムの公開日が「未来日」のものについてランキング表示対象外とする

  • 更新履歴

日付 GitHubコミットID 更新内容
初版作成

2023/11/11

v0.9.27 閲覧回数の計算手法を明記

results matching ""

    No results matching ""