検索ログ - 指定した期間の完全なリストを取得する方法

指定した期間の検索結果を、トップ100件だけでなく、すべて取得する方法はありますか?

これはデータエクスプローラーのクエリの候補になると思います。正確なクエリを作成するために少し調べる必要がありますが、データは search_logs テーブルにあると思います。

追加のヘルプが必要な場合はお知らせください。:slight_smile:

「いいね!」 3

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で使用するには、次の手順に従います。

  1. Discourseサイトの管理ダッシュボードに移動します。
  2. 左側のメニューで「Data Explorer」をクリックします。
  3. 「New Query」をクリックして新しいクエリを作成します。
  4. 必要に応じてクエリに名前と説明を付けます。
  5. 上記のSQLコードを「Query」テキストエリアにコピーして貼り付けます。
  6. 「Save」ボタンをクリックしてクエリを保存します。

保存したら、Data Explorerでクエリ名をクリックして実行できます。dateのパラメータ値を入力するように求めるポップアップが表示されます。YYYY-MM-DD(例:2023-07-28)の形式で日付を入力し、「Run Query」をクリックします。

クエリは、指定された日付から過去3ヶ月間のすべての検索ログデータを取得し、結果はテーブル形式で表示されます。

それは違うと思います。action_logs テーブルはないと思います。:thinking:

確認して、何かまとめられるか見てみますね。:+1: :slight_smile:

「いいね!」 1

こんな感じの方が良いかと思います。

-- [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

これで役立つことを願っていますが、調整が必要な場合はお知らせください。 :slight_smile:

「いいね!」 5

素晴らしい、ありがとうございます!管理者に伝えます :grinning:

「いいね!」 1

このクエリを実行したところ、完璧に機能しました。重ねて感謝いたします!

「いいね!」 2