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. ![]()
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:
- Vai alla dashboard di amministrazione del tuo sito Discourse.
- Fai clic su “Data Explorer” nel menu di sinistra.
- Fai clic su “New Query” per creare una nuova query.
- Dai un nome e una descrizione alla tua query, se lo desideri.
- Copia e incolla il codice SQL sopra nell’area di testo “Query”.
- 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. ![]()
Fammi dare un’occhiata e vedere cosa riesco a preparare.
![]()
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. ![]()
Questo è fantastico, grazie! Lo passerò al mio amministratore ![]()
Abbiamo eseguito questa query e ha funzionato perfettamente, grazie ancora!