Filtrando listas de tópicos no Discourse

:bookmark: Este guia explica o sistema avançado de filtragem de tópicos do Discourse, incluindo a sintaxe completa da linguagem de consulta, opções de filtro e como usar a rota /filter de forma eficaz.

:person_raising_hand: Nível de usuário necessário: Todos os usuários

Usando a linguagem de consulta de filtro de tópicos do Discourse

O filtro de tópicos do Discourse oferece uma poderosa linguagem de consulta para encontrar tópicos com base em vários critérios. Esta interface de pesquisa avançada permite combinar filtros, classificar resultados e criar consultas precisas para qualquer conteúdo em seu fórum.

Acessando o filtro

Você pode acessar o filtro de tópicos de duas maneiras:

Acesso direto por URL:
Navegue até /filter em sua instância do Discourse (por exemplo: https://meta.discourse.org/filter)

Navegação pela barra lateral:
Clique em “Mais” na sua barra lateral e, em seguida, selecione a opção de filtro

A interface do filtro inclui um sistema inteligente de preenchimento automático que sugere filtros e valores disponíveis enquanto você digita.

Sintaxe básica de consulta

Os filtros usam uma sintaxe estruturada com o formato:

nome-do-filtro:valor

Combinando vários filtros:

category:support status:open created-after:2023-01-01

Incluindo termos de pesquisa regulares:

category:support ssl certificate error

Isso pesquisa tópicos na categoria “suporte” que contenham as palavras “ssl certificate error”.

Filtros de categoria

category: (alias: categories:)

Filtra tópicos por categoria

Uso básico:

category:support
category:dev,support          # Tópicos nas categorias dev OU support
category:documentation:admins # Tópicos na subcategoria admins de documentation

Prefixos avançados:

  • = - Categoria sem subcategorias: =category:general
  • - - Excluir categoria: -category:off-topic
  • -= - Excluir categoria sem subcategorias: -=category:meta

Exemplos:

category:bug,feature          # Incluir categorias de bug ou feature (com subcategorias)
=category:bug,feature         # Incluir categorias de bug ou feature (sem subcategorias)
-category:bug,feature         # Excluir categorias de bug ou feature (com subcategorias)
-=category:bug,feature        # Excluir categorias de bug ou feature (sem subcategorias)

Filtros de tag

tag: (alias: tags:)

Filtra tópicos por tags (requer que a marcação esteja habilitada)

Uso básico:

tag:bug
tag:feature,enhancement       # Tópicos com tags feature OU enhancement
tag:bug+urgent               # Tópicos com tags bug E urgent

Exclusão:

-tag:solved                  # Excluir tópicos com a tag solved
-tag:bug+urgent              # Excluir tópicos com as tags bug e urgent
-tag:bug,urgent              # Excluir tópicos com as tags bug ou urgent

tag_group:

Filtra por grupos de tags

Uso básico:

tag_group:moderation
-tag_group:staff-only        # Excluir tópicos com tags do grupo staff-only

Filtros de data

Todos os filtros de data suportam datas específicas (AAAA-MM-DD) e dias relativos:

Datas de atividade

  • activity-before: - Tópicos com última atividade antes da data
  • activity-after: - Tópicos com última atividade após a data

Datas de criação

  • created-before: - Tópicos criados antes da data
  • created-after: - Tópicos criados após a data

Datas da última postagem

  • latest-post-before: - Tópicos com a última postagem antes da data
  • latest-post-after: - Tópicos com a última postagem após a data

Exemplos de formato de data:

created-after:2023-12-25     # Data específica (AAAA-MM-DD)
created-after:30             # 30 dias atrás
created-after:1              # Ontem
created-after:0              # Hoje

Sugestões rápidas:

  • 1 - Ontem
  • 7 - Semana passada
  • 30 - Mês passado
  • 365 - Ano passado

Filtros de usuário

created-by:

Filtra pelo autor do tópico

Uso básico:

created-by:username
created-by:user1,user2       # Tópicos de user1 OU user2
created-by:@username         # O prefixo @ é opcional

Filtros pessoais (apenas usuários autenticados)

in:

Filtra por seu relacionamento pessoal com os tópicos

Opções disponíveis:

  • in:pinned - Tópicos fixados para você
  • in:bookmarked - Tópicos que você marcou
  • in:watching - Tópicos que você está acompanhando
  • in:tracking - Tópicos que você está rastreando
  • in:muted - Tópicos que você silenciou
  • in:normal - Tópicos com nível de notificação normal
  • in:watching_first_post - Tópicos onde você acompanha apenas a primeira postagem

Exemplos:

in:bookmarked category:support
in:watching,tracking         # Tópicos que você está acompanhando OU rastreando

Filtros numéricos

Filtros de curtidas

  • likes-min: - Mínimo de curtidas totais em todas as postagens
  • likes-max: - Máximo de curtidas totais em todas as postagens
  • likes-op-min: - Mínimo de curtidas na postagem de abertura
  • likes-op-max: - Máximo de curtidas na postagem de abertura

Filtros de contagem de postagens

  • posts-min: - Número mínimo de postagens
  • posts-max: - Número máximo de postagens

Filtros de participantes

  • posters-min: - Número mínimo de participantes
  • posters-max: - Número máximo de participantes

Filtros de contagem de visualizações

  • views-min: - Contagem mínima de visualizações
  • views-max: - Contagem máxima de visualizações

Exemplos:

likes-min:10                 # Tópicos com pelo menos 10 curtidas
posts-min:5 posts-max:20     # Tópicos com 5-20 postagens
views-min:100 likes-op-min:5 # Tópicos populares com postagens de abertura engajadoras

Filtros de status

status:

Filtra por status do tópico

Status disponíveis:

  • status:open - Tópicos abertos (não fechados ou arquivados)
  • status:closed - Tópicos fechados
  • status:archived - Tópicos arquivados
  • status:listed - Tópicos listados (visíveis)
  • status:unlisted - Tópicos não listados
  • status:deleted - Tópicos excluídos (requer permissão)
  • status:public - Tópicos públicos (categorias não restritas)

Status específicos de plugins:

  • status:solved - Tópicos resolvidos (com plugin Solved)
  • status:unsolved - Tópicos não resolvidos (com plugin Solved)

Exemplos:

status:open category:support
status:closed created-after:30

Opções de ordenação

order:

Classifica os resultados por diferentes critérios

Ordenações disponíveis:

  • order:activity - Atividade mais recente (padrão, decrescente)
  • order:activity-asc - Atividade mais antiga primeiro
  • order:created - Data de criação (mais recentes primeiro)
  • order:created-asc - Mais antigos primeiro
  • order:latest-post - Data da última postagem
  • order:latest-post-asc - Última postagem mais antiga
  • order:likes - Mais curtidas em todas as postagens
  • order:likes-asc - Menos curtidas
  • order:likes-op - Mais curtidas na postagem de abertura
  • order:likes-op-asc - Menos curtidas na postagem de abertura
  • order:posters - Mais participantes
  • order:posters-asc - Menos participantes
  • order:title - Alfabético por título
  • order:title-asc - Alfabético reverso
  • order:views - Mais visualizações
  • order:views-asc - Menos visualizações
  • order:category - Nome da categoria
  • order:category-asc - Nome reverso da categoria
  • order:read - Data da última leitura (usuários autenticados)
  • order:read-asc - Leitura mais antiga primeiro

Exemplos avançados

Encontrar discussões recentes populares:

created-after:7 likes-min:10 order:likes

Tópicos de suporte que precisam de atenção:

category:support status:open posts-max:3 created-after:7

Seus tópicos de desenvolvimento marcados:

category:dev in:bookmarked order:activity

Excluir relatórios de bugs resolvidos:

category:bug -tag:solved status:open order:created

Tópicos de alto engajamento de usuários específicos:

created-by:admin,moderator likes-min:5 views-min:100

Tópicos não listados recentes (apenas para staff):

status:unlisted created-after:30 order:created

Recursos de preenchimento automático

A entrada do filtro oferece sugestões inteligentes:

  1. Sugestões de filtro - Mostra filtros disponíveis enquanto você digita
  2. Preenchimento automático de categoria - Sugere categorias por nome ou slug
  3. Preenchimento automático de tag - Sugere tags com contagens de postagens
  4. Preenchimento automático de nome de usuário - Sugere nomes de usuário com nomes de exibição
  5. Sugestões de data - Oferece opções rápidas de data (ontem, semana passada, etc.)
  6. Suporte a prefixos - Mostra opções de prefixo para categorias e tags

Dicas e melhores práticas

  1. Use o preenchimento automático - A interface do filtro fornece sugestões inteligentes enquanto você digita
  2. Combine filtros - Misture diferentes tipos de filtro para obter resultados precisos
  3. Compartilhe URLs de filtro - URLs de filtro são compartilháveis - copie a URL para compartilhar sua pesquisa
  4. Adicione filtros úteis à sua barra lateral - URLs de filtro podem ser adicionadas à sua barra lateral para fácil acesso
  5. Use exclusão - Use o prefixo - para excluir resultados indesejados
  6. Atalhos de data - Use números para datas relativas (30 = 30 dias atrás)
  7. Navegação pelo teclado - Use as teclas de seta para navegar pelas sugestões, Tab/Enter para selecionar

Criando links personalizados na barra lateral

Você pode adicionar links de filtro à sua barra lateral como links personalizados:

  1. Vá para as configurações da sua barra lateral
  2. Adicione um link personalizado com uma URL de filtro como /filter?q=category:support status:open
  3. Dê a ele um nome descritivo como “Tópicos de Suporte Abertos”

Notas técnicas

  • O filtro usa pesquisa de texto completo para palavras-chave combinadas com filtros
  • O comprimento mínimo do termo de pesquisa se aplica a pesquisas de palavras-chave
  • Os resultados são cientes de permissão - você só vê os tópicos aos quais pode acessar
  • As consultas de filtro são processadas no lado do servidor para desempenho
  • O recurso suporta extensões de plugin para filtros personalizados

Recursos adicionais

11 curtidas

3 posts foram divididos em um novo tópico: Suporte a onebox de build para filtros de tópico

Isso é possível? Eu sei que você pode acompanhar apenas as primeiras postagens em uma categoria, mas como isso funciona em um tópico?

3 curtidas

Provavelmente precisa de esclarecimentos, acho que encontrará todos os tópicos nas categorias que você assiste primeiro post, será atualizado

2 curtidas

Existe uma forma de combiná-lo com os filtros clássicos de não lido/novo também?

2 curtidas

Eu acho que há uma URL hacky, mas posso adicionar suporte para status:unread-posts e tópicos amanhã, não é muito difícil

3 curtidas

Eu acho que preferiria in: porque é um filtro pessoal como favoritos ou rastreamento. Os status se referem ao status do tópico.

Eu esperaria que watching retornasse todos os tópicos que estou acompanhando, não todos os tópicos das categorias que estou acompanhando. Essa é uma suposição errada? Acho isso confuso se “watching first post” se refere à categoria, enquanto os outros status se referem a tópicos.

2 curtidas

Podemos precisar de outro operador para esta semântica de observação

Concordo, talvez eu precise ajustar os internos para suportar várias cláusulas “in”.

Eu adoraria uma maneira de filtrar por tópicos que ainda não vi e por aqueles aos quais ainda não respondi!

Isso é possível?

Por exemplo, um filtro para “Posts na categoria Introduções aos quais ainda não respondi”.

2 curtidas

post:

in:unseen category:welcome -user:shauny

Ou mesmo se você não se importar com não vistos, você pode usar:

category:welcome -user:shauny

Existe suporte para coisas como in:first como na pesquisa? Obrigado.

Como você veria isso funcionando?

Por exemplo, mostrar todos os tópicos com uma determinada palavra-chave para ocultá-los (em vez de usar a pesquisa).

Isso já funciona:

https://meta.discourse.org/filter?q=glitchy%20category%3Abug

E também funciona:

https://meta.discourse.org/filter?q=glitchy%20category%3Abug%20f

Mas acho que se houver alguma outra palavra-chave como in:first oculta que não seja tratada pelo filtro, podemos encaminhá-la para a pesquisa…

1 curtida

Ah, entendi - f procura por isso na primeira postagem. Não encontrei na documentação, tive que procurar aqui. Obrigado!

1 curtida

Um filtro que me falta é “nenhum timer de tópico definido para fechar” ou “nenhum timer de tópico definido para fechar após a última resposta”. Isso existe e eu apenas não estou encontrando?

Estou usando um filtro vinculado da minha barra lateral para triar tópicos de suporte aqui no meta, à medida que eles começam a envelhecer sem serem resolvidos.

Aqui está o filtro como ele aparece agora:

category:support status:open status:unsolved activity-before:7 assigned:nobody

Ele funciona muito bem, mas, como você verá, há alguns tópicos listados para os quais defini timers de tópico que eu gostaria de não ver mais na lista.