Ricerca log: come ottenere un elenco completo per un determinato intervallo di date?

Esiste un modo per ottenere un elenco completo delle ricerche per un determinato intervallo di date, invece di solo le prime 100?

Penso che questo possa essere un candidato per una query di esplorazione dati. Dovrei cercare un po’ per costruire la query esatta, ma penso che i dati siano nella tabella search_logs.

Fammi sapere se hai bisogno di ulteriore aiuto. :slight_smile:

3 Mi Piace

Non conosco SQL, ma ecco cosa mi ha detto ChatGPT quando ho chiesto come interrogare i log di ricerca degli ultimi 3 mesi. Funzionerebbe (non ho accesso amministrativo per provarlo, ma vorrei avere una query solida da passare al mio amministratore).


Per ottenere tutti i dati dei log di ricerca degli ultimi 3 mesi utilizzando Discourse Data Explorer, puoi creare una nuova query con il seguente codice:

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

In questa query, utilizziamo la sintassi -- [params] per definire un parametro chiamato date di tipo datetime. Questo parametro ti consente di specificare la data per la quale desideri recuperare i dati dei log di ricerca. La query utilizza quindi questo parametro per filtrare i log di ricerca degli ultimi 3 mesi dalla data specificata.

Per utilizzare questa query in Discourse Data Explorer, segui questi passaggi:

  1. Vai alla dashboard di amministrazione del tuo sito Discourse.
  2. Fai clic su “Data Explorer” nel menu di sinistra.
  3. Fai clic su “New Query” per creare una nuova query.
  4. Dai un nome e una descrizione alla tua query, se lo desideri.
  5. Copia e incolla il codice SQL sopra nell’area di testo “Query”.
  6. Fai clic sul pulsante “Save” per salvare la query.

Una volta salvata, puoi eseguire la query facendo clic sul suo nome in Data Explorer. Apparirà una finestra popup che ti chiederà di inserire il valore del parametro per date. Fornisci una data nel formato AAAA-MM-GG (ad esempio, 2023-07-28) e fai clic su “Run Query”.

La query recupererĂ  tutti i dati dei log di ricerca degli ultimi 3 mesi dalla data specificata e i risultati verranno visualizzati in formato tabellare.

Non credo sia corretto. Non credo che abbiamo una tabella action_logs. :thinking:

Fammi dare un’occhiata e vedere cosa riesco a preparare. :+1: :slight_smile:

1 Mi Piace

Penso che qualcosa del genere dovrebbe essere piĂą appropriato:

-- [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 "Termine di ricerca",
       searches AS "Ricerca",
       click_through AS "Click-through",
       CEIL ((click_through/searches::float) * 100) || '%' AS "CTR"
FROM results
ORDER BY searches DESC

Spero che questo aiuti, ma fammi sapere se desideri delle modifiche. :slight_smile:

5 Mi Piace

Questo è fantastico, grazie! Lo passerò al mio amministratore :grinning:

1 Mi Piace

Abbiamo eseguito questa query e ha funzionato perfettamente, grazie ancora!

2 Mi Piace