Эффективный поиск контента

:bookmark: Это руководство дает исчерпывающий обзор возможностей поиска в Discourse, включая фильтры, параметры и продвинутые техники.

:person_raising_hand: Требуемый уровень пользователя: Все пользователи

Discourse предлагает мощный функционал поиска с множеством фильтров и критериев. При использовании расширенной формы поиска она автоматически добавляет соответствующий синтаксис к вашему запросу. Например, выбор [x] В моих сообщениях добавит in:personal к вашему поисковому запросу.

Это руководство охватывает все доступные параметры и функции поиска в Discourse, а также предоставляет полезные советы и приемы для использования функции поиска.

Фильтры

Discourse предоставляет широкий спектр фильтров, помогающих уточнить результаты поиска. Вот полный список доступных фильтров:

Фильтры области поиска

Синтаксис Описание
in:title Возвращает темы, содержащие поисковый термин в заголовке
in:first Возвращает только первые сообщения в темах
in:replies Возвращает только сообщения, являющиеся ответами, исключая оригинальные сообщения тем (OP)
in:all-posts Возвращает каждое сообщение, соответствующее запросу, даже если несколько сообщений совпадают в рамках одной темы
in:all Возвращает сообщения из публичных тем и личных сообщений
in:personal Ищет внутри ваших личных сообщений
in:personal-direct Возвращает сообщения в личных переписках только между двумя пользователями
in:all-pms :information_source: Только для администраторов
Возвращает сообщения из всех личных переписок, включая те, в которых вы не участвуете
topic:topic_id Возвращает сообщения в рамках конкретной темы
include:unlisted :information_source: Только для пользователей с уровнем доверия 4 и сотрудников
Возвращает сообщения, включая те, что находятся в непубличных (неспомещенных в списки) темах

Фильтры типов сообщений

Синтаксис Описание
in:regular Возвращает только обычные сообщения (исключает шепот, сообщения о малых действиях и сообщения сотрудников с цветовой маркировкой)
in:whisper :information_source: Только для пользователей с доступом к шепоту
Возвращает сообщения типа «шепот»
in:pinned Возвращает сообщения из закрепленных тем
in:wiki Возвращает сообщения вики
with:images Возвращает сообщения, содержащие изображения
in:bot Возвращает сообщения от ботов
in:human Возвращает сообщения от людей

Фильтры пользователей и групп

Синтаксис Описание
@username Возвращает сообщения от username
user:username Возвращает сообщения от username
created:@username Возвращает сообщения из тем, созданных username
group:group_name Возвращает сообщения от пользователей группы group_name
group_messages:group_name Возвращает сообщения из личных переписок, отправленных группе group_name
personal_messages:username :information_source: Только для администраторов
Возвращает сообщения из личных переписок указанного пользователя
badge:name_or_id Возвращает сообщения, связанные с конкретной выдачей значка

Специфичные для пользователя фильтры (для авторизованных)

Синтаксис Описание
in:seen Возвращает сообщения, которые вы уже видели
in:unseen Возвращает сообщения, которые вы еще не видели
in:watching Возвращает сообщения из тем, за которыми вы следите
in:tracking Возвращает сообщения из тем, которые вы отслеживаете
in:bookmarks Возвращает сообщения, которые вы добавили в закладки
in:likes Возвращает сообщения, которые вам понравились
in:posted Возвращает ваши сообщения
in:created Возвращает первые сообщения тем, которые вы создали

Фильтры по категориям и тегам

Синтаксис Описание
categories:category1,category2 Возвращает сообщения из категорий category1 и category2
#slug Ищет по слагу категории или имени тега в зависимости от контекста
tags:tag1,tag2,tag3 Возвращает сообщения с тегами tag1, tag2 или tag3 (запятая = ИЛИ)
tags:tag1+tag2+tag3 Возвращает сообщения со всеми тегами tag1, tag2 и tag3 (плюс = И)
-tags:tag1,tag2,tag3 Возвращает сообщения без тегов tag1, tag2 или tag3
in:tagged Возвращает сообщения из тем, имеющих хотя бы один тег
in:untagged Возвращает сообщения из тем без тегов

Фильтры по количеству сообщений и просмотров

Синтаксис Описание
posts_count:X Возвращает сообщения из тем, имеющих ровно X сообщений
min_posts:X Возвращает сообщения из тем, имеющих как минимум X сообщений
max_posts:X Возвращает сообщения из тем, имеющих не более X сообщений
min_views:X Возвращает сообщения из тем, имеющих как минимум X просмотров
max_views:X Возвращает сообщения из тем, имеющих не более X просмотров

Фильтры по дате

Синтаксис Описание
before:YYYY-MM-DD Возвращает сообщения, созданные до указанной даты
after:YYYY-MM-DD Возвращает сообщения, созданные после указанной даты
before:YYYY-MM Возвращает сообщения, созданные до указанного месяца
after:YYYY-MM Возвращает сообщения, созданные в указанном месяце и после него
before:YYYY Возвращает сообщения, созданные до указанного года
after:YYYY Возвращает сообщения, созданные в указанном году и после него
before:X Возвращает сообщения, созданные более X дней назад (X = 1–999)
after:X Возвращает сообщения, созданные в последние X дней (X = 1–999)
before:day_of_week Возвращает сообщения, созданные до начала указанного дня недели
after:day_of_week Возвращает сообщения, созданные в указанный день недели и после него
before:month_name Возвращает сообщения, созданные до указанного месяца (например, before:january или before:jan)
after:month_name Возвращает сообщения, созданные в указанном месяце и после него
before:yesterday Возвращает сообщения, созданные до вчера
after:yesterday Возвращает сообщения, созданные после вчера

Фильтры по статусу

Синтаксис Описание
status:open Возвращает сообщения из тем, которые не закрыты и не заархивированы
status:closed Возвращает сообщения из закрытых тем
status:archived Возвращает сообщения из заархивированных тем
status:noreplies Возвращает сообщения из тем без ответов
status:single_user Возвращает сообщения из тем, где сообщения есть только от одного пользователя
status:public Возвращает сообщения из тем в публичных категориях

Фильтры по типу файла

Синтаксис Описание
filetypes:ext1,ext2,ext3 Возвращает сообщения с загруженными файлами расширений ext1, ext2 или ext3

Фильтры по языку

Синтаксис Описание
locale:language_code Возвращает сообщения, написанные на указанном языке, например locale:en, locale:en_US, locale:en-gb
locale:any Возвращает сообщения, у которых установлен язык
locale:none Возвращает сообщения без установленного языка

Сортировка

Вы можете сортировать результаты поиска, используя следующие параметры сортировки:

Синтаксис Описание
order:latest Сортирует результаты от новых к старым
order:oldest Сортирует результаты от старых к новым
order:latest_topic Сортирует результаты по дате создания темы, от новых к старым
order:oldest_topic Сортирует результаты по дате создания темы, от старых к новым
order:views Сортирует результаты по количеству просмотров
order:likes Сортирует результаты по количеству лайков
order:read (только для авторизованных) Сортирует по дате последнего посещения темы

Алиасы

Discourse предоставляет несколько алиасов для упрощения поиска:

Синтаксис Эквивалент
l order:latest
r order:read
f in:first
t in:title
in:personal in:messages
in:mine in:created
min_post_count: min_posts:
category: categories:
tag: tags:
filetype: filetypes:
# Может использоваться как для категорий, так и для тегов в зависимости от контекста
user: @
@me @ваш_собственный_ник

Поиск точных слов

Discourse использует технику стемминга для поиска связанных слов. Хотя это часто полезно, бывают случаи, когда вы хотите найти точное слово. Это можно сделать, заключив слово в кавычки с пробелами по краям, например: " термин ".

Это гарантирует, что будет найден только термин «термин», и будут исключены другие связанные слова.

:information_source: Обратите внимание, что поскольку пробелы считаются частью поискового термина, он не вернет «термин», если это первое или последнее слово в сообщении, так как оно не будет preceded или followed пробелом.

Пример: Поиск @упоминаний

В настоящее время прямой поиск по @упоминаниям не поддерживается. Однако вы можете добиться этого, используя метод поиска точных слов:

https://meta.discourse.org/search?q=“%20%40username%20”

:information_source: Это работает, потому что %20 — это кодировка пробела в URL, а %40 — кодировка символа @.

Этот запрос будет искать конкретно @username (окруженное пробелами).

Комбинирование параметров поиска

Вы можете комбинировать несколько параметров поиска для создания более специфичных запросов. Например:

  • status:open category:support tag:urgent after:2023-01-01 order:latest
    Этот запрос ищет открытые темы поддержки с тегом urgent, созданные после 1 января 2023 года, и сортирует результаты по последнему сообщению.

  • @jane_doe in:watching min_posts:5 with:images
    Этот запрос ищет сообщения от Jane Doe в темах, за которыми вы следите, содержащих как минимум 5 сообщений и изображения.

Разрешения и ограничения

Некоторые расширенные параметры поиска могут требовать определенных прав доступа пользователя или быть ограничены конкретными ролями. Например:

  • in:all-pms доступен только администраторам, а не обычным пользователям или модераторам.
  • personal_messages:username доступен только администраторам.
  • in:whisper требует доступа к функциям шепота.
  • include:unlisted доступен только пользователям с уровнем доверия 4 и сотрудникам.

Всегда учитывайте свою роль и права доступа при использовании расширенных параметров поиска.

Альтернатива поиску: Фильтр списка тем

Доступна функция /filter, поддерживающая множество типов фильтров. Подробнее можно узнать в официальной теме: Topics list filter feature

Исходные файлы

Для более технического взгляда на эти параметры все фильтры и параметры поиска можно найти в файле search.rb — ищите методы advanced_filter.

Дополнительные советы

  1. Вы также можете искать упоминания тегов, например #bug: https://meta.discourse.org/search?q=“%20%23bug”

  2. Некоторые фильтры могут добавляться плагинами. Например, плагин Solved добавляет:

    • status:solved: Возвращает сообщения из решенных тем
    • status:unsolved: Возвращает сообщения из нерешенных тем в категориях, разрешающих отметку решения
  3. Плагин Topic Voting добавляет:

    • order:votes: Сортирует результаты по количеству голосов за тему, содержащую сообщение
    • min_vote_count:X: Возвращает сообщения из тем с как минимум X голосами
  4. Плагин Assign добавляет:

    • in:assigned: Возвращает сообщения из тем, назначенных кому-то
    • in:unassigned: Возвращает сообщения из тем, не назначенных никому
    • assigned:username: Возвращает сообщения из тем, назначенных username
  5. Плагин Poll добавляет:

    • in:polls: Возвращает сообщения, содержащие опросы

:bulb: Уделите время экспериментированию с различными комбинациями фильтров и параметров, чтобы найти наиболее эффективную стратегию поиска для ваших нужд.

13 лайков