Это руководство объясняет расширенную систему фильтрации тем Discourse, включая полный синтаксис языка запросов, варианты фильтров и эффективное использование маршрута
/filter.
Требуемый уровень доступа: Для всех пользователей
Использование языка запросов фильтрации тем Discourse
Фильтр тем Discourse предоставляет мощный язык запросов для поиска тем по множеству критериев. Этот расширенный интерфейс поиска позволяет комбинировать фильтры, сортировать результаты и создавать точные запросы для любого контента на вашем форуме.
Доступ к фильтру
Вы можете получить доступ к фильтру тем двумя способами:
Прямой доступ по URL:
Перейдите на /filter в вашем экземпляре Discourse (например: https://meta.discourse.org/filter)
Навигация через боковую панель:
Нажмите «Ещё» в вашей боковой панели, затем выберите опцию фильтра.
Интерфейс фильтра включает интеллектуальную систему автодополнения, которая предлагает доступные фильтры и значения по мере ввода.
Базовый синтаксис запроса
Фильтры используют структурированный синтаксис в формате:
имя-фильтра:значение
Комбинирование нескольких фильтров:
category:support status:open created-after:2023-01-01
Включение обычных поисковых терминов:
category:support ssl certificate error
Это ищет темы в категории «support», содержащие слова «ssl certificate error».
Фильтры по категориям
category: (синоним: categories:)
Фильтрация тем по категориям
Базовое использование:
category:support
category:dev,support # Темы в категориях dev ИЛИ support
category:documentation:admins # Темы в подкатегории admins категории documentation
Расширенные префиксы:
=- Категория без подкатегорий:=category:general-- Исключить категорию:-category:off-topic-=- Исключить категорию без подкатегорий:-=category:meta
Примеры:
category:bug,feature # Включить категории bug или feature (с подкатегориями)
=category:bug,feature # Включить категории bug или feature (без подкатегорий)
-category:bug,feature # Исключить категории bug или feature (с подкатегориями)
-=category:bug,feature # Исключить категории bug или feature (без подкатегорий)
Фильтры по тегам
tag: (синоним: tags:)
Фильтрация тем по тегам (требуется включение тегов)
Базовое использование:
tag:bug
tag:feature,enhancement # Темы с тегами feature ИЛИ enhancement
tag:bug+urgent # Темы с ТЕМИ И ДРУГИМИ тегами: bug И urgent
Исключение:
-tag:solved # Исключить темы с тегом solved
-tag:bug+urgent # Исключить темы с обоими тегами: bug и urgent
-tag:bug,urgent # Исключить темы с тегами bug или urgent
tag_group:
Фильтрация по группам тегов
Базовое использование:
tag_group:moderation
tag_group:"tag group name" # Используйте кавычки для названий с пробелами или спецсимволами
-tag_group:staff-only # Исключить темы с тегами из группы staff-only
Фильтры по датам
Все фильтры по датам поддерживают как конкретные даты (YYYY-MM-DD), так и относительные дни:
Даты активности
activity-before:- Темы с последней активностью до указанной датыactivity-after:- Темы с последней активностью после указанной даты
Даты создания
created-before:- Темы, созданные до указанной датыcreated-after:- Темы, созданные после указанной даты
Даты последнего сообщения
latest-post-before:- Темы с последним сообщением до указанной датыlatest-post-after:- Темы с последним сообщением после указанной даты
Примеры формата даты:
created-after:2023-12-25 # Конкретная дата (ГГГГ-ММ-ДД)
created-after:30 # 30 дней назад
created-after:1 # Вчера
created-after:0 # Сегодня
Быстрые подсказки:
1- Вчера7- На прошлой неделе30- В прошлом месяце365- В прошлом году
Фильтры по пользователям
created-by:
Фильтрация по автору темы (имя пользователя или название группы)
Базовое использование:
created-by:username
created-by:user1,user2 # Темы, созданные user1 ИЛИ user2
created-by:@username # Префикс @ необязателен
created-by:me
created-by:staff # Темы, созданные участниками группы "staff"
users: (синоним: user:)
Фильтрация тем, в которых участвовали конкретные пользователи (оставляли сообщения в теме)
Базовое использование:
users:username # Темы, где username оставлял сообщения
users:user1,user2 # Темы, где user1 ИЛИ user2 оставляли сообщения
users:user1+user2 # Темы, где И user1, И user2 оставляли сообщения
Исключение:
-users:username # Темы, где username НЕ оставлял сообщений
-users:user1,user2 # Темы, где ни user1, ни user2 не оставляли сообщений
-users:user1+user2 # Темы, где хотя бы один из user1 или user2 НЕ оставлял сообщений
group: (синоним: groups:)
Фильтрация тем, в которых участвовали участники конкретных групп
Базовое использование:
group:staff # Темы, где участвовал участник группы staff
group:staff,moderators # Темы, где участвовал участник группы staff ИЛИ moderators
group:staff+moderators # Темы, где участвовали участники И группы staff, И группы moderators
Персональные фильтры (только для авторизованных пользователей)
in:
Фильтрация по вашему личному отношению к темам
Доступные опции:
in:pinned- Темы, закрепленные для васin:bookmarked- Темы, которые вы закрепили (закладки)in:watching- Темы, за которыми вы следитеin:tracking- Темы, которые вы отслеживаетеin:muted- Темы, которые вы отключили (mute)in:normal- Темы с уровнем уведомлений «по умолчанию»in:watching_first_post- Темы в категориях или с тегами, где вы следите за первым сообщениемin:new- Темы с новой активностью (новые темы, которые вы не видели + непрочитанные ответы)in:new-topics- Новые темы, которые вы еще не виделиin:new-replies- Темы с непрочитанными ответамиin:unseen- Темы, которые вы еще не просматривали
Примеры:
in:bookmarked category:support
in:watching,tracking # Темы, за которыми вы следите ИЛИ которые отслеживаете
in:unseen category:welcome # Не просмотренные темы в категории welcome
in:new order:created # Вся новая активность, отсортированная по дате создания
Числовые фильтры
Фильтры по лайкам
likes-min:- Минимальное общее количество лайков во всех сообщенияхlikes-max:- Максимальное общее количество лайков во всех сообщенияхlikes-op-min:- Минимальное количество лайков в первом сообщении темыlikes-op-max:- Максимальное количество лайков в первом сообщении темы
Фильтры по количеству сообщений
posts-min:- Минимальное количество сообщенийposts-max:- Максимальное количество сообщений
Фильтры по участникам
posters-min:- Минимальное количество участниковposters-max:- Максимальное количество участников
Фильтры по просмотрам
views-min:- Минимальное количество просмотровviews-max:- Максимальное количество просмотров
Примеры:
likes-min:10 # Темы с как минимум 10 лайками
posts-min:5 posts-max:20 # Темы с 5–20 сообщениями
views-min:100 likes-op-min:5 # Популярные темы с активным первым сообщением
Фильтры по статусу
status:
Фильтрация по статусу темы
Доступные статусы:
status:open- Открытые темы (не закрытые и не архивные)status:closed- Закрытые темыstatus:archived- Архивные темыstatus:listed- Отображаемые (видимые) темыstatus:unlisted- Скрытые темыstatus:deleted- Удаленные темы (требуется разрешение)status:public- Публичные темы (категории без ограничений)
Статусы, зависящие от плагинов:
status:solved- Решенные темы (с плагином Solved)status:unsolved- Нерешенные темы (с плагином Solved)
Примеры:
status:open category:support
status:closed created-after:30
Фильтр по локали
locale:
Фильтрация тем по локали
Базовое использование:
locale:en # Темы на английском языке
locale:en,fr # Темы на английском ИЛИ французском языках
-locale:fr # Исключить темы на французском языке
Опции сортировки
order:
Сортировка результатов по различным критериям
Доступные типы сортировки:
order:activity- Последняя активность (по умолчанию, по убыванию)order:activity-asc- Сначала самая старая активностьorder:created- Дата создания (сначала новые)order:created-asc- Сначала старыеorder:latest-post- Дата последнего сообщенияorder:latest-post-asc- Сначала самое старое последнее сообщениеorder:likes- Наибольшее количество лайков во всех сообщенияхorder:likes-asc- Наименьшее количество лайковorder:likes-op- Наибольшее количество лайков в первом сообщенииorder:likes-op-asc- Наименьшее количество лайков в первом сообщенииorder:posters- Наибольшее количество участниковorder:posters-asc- Наименьшее количество участниковorder:title- По алфавиту по названию (Z→A)order:title-asc- По алфавиту по названию (A→Z)order:views- Наибольшее количество просмотровorder:views-asc- Наименьшее количество просмотровorder:hot- Наивысший показатель «горячести» (hot score)order:hot-asc- Наименьший показатель «горячести»order:category- Название категорииorder:category-asc- Обратный порядок названий категорийorder:read- Дата последнего прочтения (для авторизованных пользователей)order:read-asc- Сначала самое старое прочтение
Продвинутые примеры
Найти популярные недавние обсуждения:
created-after:7 likes-min:10 order:likes
Темы поддержки, требующие внимания:
category:support status:open posts-max:3 created-after:7
Ваше закрепленное (закладки) обсуждение по разработке:
category:dev in:bookmarked order:activity
Исключить решенные отчеты об ошибках:
category:bug -tag:solved status:open order:created
Темы с высоким уровнем вовлеченности от конкретных пользователей:
created-by:admin,moderator likes-min:5 views-min:100
Недавние скрытые темы (только для персонала):
status:unlisted created-after:30 order:created
Функции автодополнения
Поле ввода фильтра предоставляет интеллектуальные подсказки:
- Предложения фильтров - Показывает доступные фильтры по мере ввода
- Автодополнение категорий - Предлагает категории по имени или слаг
- Автодополнение тегов - Предлагает теги с количеством сообщений
- Автодополнение имен пользователей - Предлагает имена пользователей с отображаемыми именами
- Предложения по датам - Предлагает быстрые варианты дат (вчера, на прошлой неделе и т.д.)
- Поддержка префиксов - Показывает варианты префиксов для категорий и тегов
Советы и лучшие практики
- Используйте автодополнение - Интерфейс фильтра предоставляет интеллектуальные подсказки по мере ввода
- Комбинируйте фильтры - Смешивайте разные типы фильтров для получения точных результатов
- Поделитесь URL-адресом фильтра - URL-адреса фильтров можно делиться — скопируйте URL, чтобы поделиться вашим поиском
- Добавьте полезные фильтры в боковую панель - URL-адреса фильтров можно добавить в боковую панель для быстрого доступа
- Используйте исключение - Используйте префикс
-для исключения нежелательных результатов - Ярлыки для дат - Используйте числа для относительных дат (30 = 30 дней назад)
- Навигация с клавиатуры - Используйте стрелки для навигации по подсказкам, Tab/Enter для выбора
- Цитируйте спецсимволы - Используйте кавычки для названий групп тегов с пробелами или спецсимволами
Создание пользовательских ссылок в боковой панели
Вы можете добавить ссылки на фильтры в боковую панель как пользовательские ссылки:
- Перейдите в настройки боковой панели
- Добавьте пользовательскую ссылку с URL-адресом фильтра, например
/filter?q=category:support status:open - Дайте ей описательное имя, например «Открытые темы поддержки»
Технические примечания
- Фильтр использует полнотекстовый поиск для ключевых слов в сочетании с фильтрами
- Применяется минимальная длина поискового термина для поиска по ключевым словам
- Результаты учитывают права доступа — вы видите только те темы, к которым у вас есть доступ
- Запросы фильтра обрабатываются на стороне сервера для повышения производительности
- Функция поддерживает расширения плагинов для пользовательских фильтров
