Есть ли способ получить полный список поисковых запросов за заданный диапазон дат, а не только топ-100?
Думаю, это может быть подходящим для запроса в Data Explorer. Мне нужно будет немного покопаться, чтобы составить точный запрос, но, по-моему, данные находятся в таблице search_logs.
Дайте знать, если понадобится дополнительная помощь. ![]()
Я не знаю SQL, но вот что мне ответил ChatGPT, когда я спросил, как запросить логи поиска за последние 3 месяца. Сработает ли это (у меня нет прав администратора, чтобы проверить, но я хочу предоставить администратору готовый запрос).
Чтобы получить все данные логов поиска за последние 3 месяца с помощью Discourse Data Explorer, создайте новый запрос со следующим кодом:
-- [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] для определения параметра с именем date типа datetime. Этот параметр позволяет указать дату, за которую нужно получить данные логов поиска. Затем запрос использует этот параметр для фильтрации логов поиска за последние 3 месяца от указанной даты.
Чтобы использовать этот запрос в Discourse Data Explorer, выполните следующие шаги:
- Перейдите на панель администратора вашего сайта Discourse.
- В левом меню выберите «Data Explorer».
- Нажмите «New Query», чтобы создать новый запрос.
- При желании дайте запросу имя и описание.
- Скопируйте и вставьте приведенный выше SQL-код в текстовое поле «Query».
- Нажмите кнопку «Save», чтобы сохранить запрос.
После сохранения вы можете выполнить запрос, кликнув по его имени в Data Explorer. Появится всплывающее окно с просьбой ввести значение параметра date. Укажите дату в формате YYYY-MM-DD (например, 2023-07-28) и нажмите «Run Query».
Запрос вернет все данные логов поиска за последние 3 месяца от указанной даты, а результаты будут отображены в виде таблицы.
Думаю, это неверно. У нас, кажется, нет таблицы action_logs. ![]()
Давайте я посмотрю и попробую что-нибудь собрать.
![]()
Думаю, что-то вроде этого будет более подходящим:
-- [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
Надеюсь, это поможет, но дайте знать, если нужны какие-то правки. ![]()
Это здорово, спасибо! Я передам это моему администратору ![]()
Мы выполнили этот запрос, и всё сработало идеально, ещё раз спасибо!