SQLはわかりませんが、ChatGPTに過去3ヶ月間の検索ログを照会する方法を尋ねたところ、次のような回答がありました。これは機能しますか(管理アクセスがないため試すことはできませんが、管理者に渡せる確実なクエリを用意しておきたいです)。
Discourse Data Explorerを使用して過去3ヶ月間のすべての検索ログデータを取得するには、次のコードで新しいクエリを作成できます。
-- [params]
-- date :datetime
SELECT
action_logs.id AS action_log_id,
action_logs.created_at AS action_log_date,
action_logs.action AS action_type,
users.id AS user_id,
users.username AS user_username,
users.email AS user_email,
user_actions.details AS search_query
FROM
action_logs
JOIN
user_actions ON user_actions.id = action_logs.action_id
JOIN
users ON user_actions.user_id = users.id
WHERE
action_logs.action = 'searched'
AND action_logs.created_at >= :date - INTERVAL '3 months'
ORDER BY
action_logs.created_at DESC;
このクエリでは、-- [params]構文を使用して、datetime型のdateという名前のパラメータを定義します。このパラメータを使用すると、検索ログデータを取得したい日付を指定できます。次に、クエリはこのパラメータを使用して、指定された日付から過去3ヶ月間の検索ログをフィルタリングします。
このクエリをDiscourse Data Explorerで使用するには、次の手順に従います。
- Discourseサイトの管理ダッシュボードに移動します。
- 左側のメニューで「Data Explorer」をクリックします。
- 「New Query」をクリックして新しいクエリを作成します。
- 必要に応じてクエリに名前と説明を付けます。
- 上記のSQLコードを「Query」テキストエリアにコピーして貼り付けます。
- 「Save」ボタンをクリックしてクエリを保存します。
保存したら、Data Explorerでクエリ名をクリックして実行できます。dateのパラメータ値を入力するように求めるポップアップが表示されます。YYYY-MM-DD(例:2023-07-28)の形式で日付を入力し、「Run Query」をクリックします。
クエリは、指定された日付から過去3ヶ月間のすべての検索ログデータを取得し、結果はテーブル形式で表示されます。