¿Hay alguna forma de obtener una lista completa de búsquedas para un rango de fechas determinado, en lugar de solo las 100 principales?
Creo que esto podría ser un candidato para una consulta de explorador de datos. Tendría que rebuscar un poco para construir la consulta exacta, pero creo que los datos están en la tabla search_logs.
Avísame si necesitas ayuda adicional. ![]()
No sé SQL, pero esto es lo que me dijo ChatGPT cuando le pregunté cómo consultar los registros de búsqueda de los últimos 3 meses. ¿Funcionaría esto (no tengo acceso de administrador para probarlo, pero me gustaría tener una consulta sólida para pasar a mi administrador)?
Para obtener todos los datos de registro de búsqueda de los últimos 3 meses utilizando Discourse Data Explorer, puedes crear una nueva consulta con el siguiente 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;
En esta consulta, utilizamos la sintaxis -- [params] para definir un parámetro llamado date de tipo datetime. Este parámetro te permite especificar la fecha para la que deseas recuperar los datos del registro de búsqueda. La consulta utiliza este parámetro para filtrar los registros de búsqueda de los últimos 3 meses a partir de la fecha especificada.
Para usar esta consulta en Discourse Data Explorer, sigue estos pasos:
- Ve al panel de administración de tu sitio de Discourse.
- Haz clic en “Data Explorer” en el menú de la izquierda.
- Haz clic en “New Query” para crear una nueva consulta.
- Dale un nombre y una descripción a tu consulta si lo deseas.
- Copia y pega el código SQL anterior en el área de texto “Query”.
- Haz clic en el botón “Save” para guardar la consulta.
Una vez guardada, puedes ejecutar la consulta haciendo clic en su nombre en Data Explorer. Aparecerá una ventana emergente pidiéndote que introduzcas el valor del parámetro para date. Proporciona una fecha en el formato YYYY-MM-DD (por ejemplo, 2023-07-28) y haz clic en “Run Query”.
La consulta recuperará todos los datos del registro de búsqueda de los últimos 3 meses a partir de la fecha especificada, y los resultados se mostrarán en formato de tabla.
No creo que eso sea correcto. No creo que tengamos una tabla action_logs. ![]()
Déjame echar un vistazo y ver qué puedo preparar.
![]()
Creo que algo así debería ser más adecuado:
-- [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 "Término de Búsqueda",
searches AS "Búsquedas",
click_through AS "Clics",
CEIL ((click_through/searches::float) * 100) || '%' AS "CTR"
FROM results
ORDER BY searches DESC
Espero que eso ayude, pero házmelo saber si quieres algún ajuste. ![]()
¡Esto es genial, gracias! Se lo pasaré a mi administrador ![]()
Ejecutamos esta consulta y funcionó perfectamente, ¡gracias de nuevo!