Existe uma maneira de obter uma lista completa de pesquisas para um determinado intervalo de datas, em vez de apenas as 100 principais?
Acho que isso pode ser um candidato para uma consulta do explorador de dados. Eu teria que procurar um pouco para construir a consulta exata, mas acho que os dados estão na tabela search_logs.
Me avise se precisar de ajuda extra. ![]()
Não sei SQL, mas aqui está o que o ChatGPT me disse quando perguntei como consultar logs de pesquisa dos últimos 3 meses. Isso funcionaria (não tenho acesso de administrador para tentar, mas gostaria de ter uma consulta sólida para passar ao meu administrador).
Para obter todos os dados de log de pesquisa dos últimos 3 meses usando o Discourse Data Explorer, você pode criar uma nova consulta com o seguinte código:
-- [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;
Nesta consulta, usamos a sintaxe -- [params] para definir um parâmetro chamado date do tipo datetime. Este parâmetro permite que você especifique a data para a qual deseja recuperar os dados do log de pesquisa. A consulta então usa este parâmetro para filtrar os logs de pesquisa dos últimos 3 meses a partir da data especificada.
Para usar esta consulta no Discourse Data Explorer, siga estas etapas:
- Vá para o painel de administração do seu site Discourse.
- Clique em “Data Explorer” no menu do lado esquerdo.
- Clique em “New Query” para criar uma nova consulta.
- Dê um nome e descrição à sua consulta, se desejar.
- Copie e cole o código SQL acima na área de texto “Query”.
- Clique no botão “Save” para salvar a consulta.
Uma vez salva, você pode executar a consulta clicando em seu nome no Data Explorer. Um pop-up aparecerá solicitando que você insira o valor do parâmetro para date. Forneça uma data no formato AAAA-MM-DD (por exemplo, 2023-07-28) e clique em “Run Query”.
A consulta recuperará todos os dados de log de pesquisa dos últimos 3 meses a partir da data especificada, e os resultados serão exibidos em formato de tabela.
Não acho que isso esteja certo. Não acho que tenhamos uma tabela action_logs. ![]()
Deixe-me dar uma olhada e ver o que consigo montar.
![]()
Acho que algo assim seria mais adequado:
-- [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 "Termo de Pesquisa",
searches AS "Pesquisas",
click_through AS "Cliques",
CEIL ((click_through/searches::float) * 100) || '%' AS "CTR"
FROM results
ORDER BY searches DESC
Espero que ajude, mas me diga se quiser algum ajuste. ![]()
Isso é incrível, obrigado! Vou passar para o meu administrador ![]()
Executamos essa consulta e funcionou perfeitamente, obrigado novamente!