指定した期間の検索結果を、トップ100件だけでなく、すべて取得する方法はありますか?
これはデータエクスプローラーのクエリの候補になると思います。正確なクエリを作成するために少し調べる必要がありますが、データは search_logs テーブルにあると思います。
追加のヘルプが必要な場合はお知らせください。![]()
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ヶ月間のすべての検索ログデータを取得し、結果はテーブル形式で表示されます。
それは違うと思います。action_logs テーブルはないと思います。![]()
確認して、何かまとめられるか見てみますね。
![]()
こんな感じの方が良いかと思います。
-- [params]
-- date :start_date
-- date :end_date
WITH results AS (
SELECT LOWER(term) AS term,
COUNT(*) AS searches,
SUM(CASE WHEN search_result_id IS NOT NULL THEN 1 ELSE 0 END) AS click_through
FROM search_logs
WHERE created_at BETWEEN :start_date AND :end_date
GROUP BY term
)
SELECT term AS "検索語",
searches AS "検索数",
click_through AS "クリック数",
CEIL ((click_through/searches::float) * 100) || '%' AS "CTR"
FROM results
ORDER BY searches DESC
これで役立つことを願っていますが、調整が必要な場合はお知らせください。 ![]()
素晴らしい、ありがとうございます!管理者に伝えます ![]()
このクエリを実行したところ、完璧に機能しました。重ねて感謝いたします!