Filtrer les listes de sujets dans Discourse

:bookmark: Ce guide explique le système avancé de filtrage de sujets de Discourse, y compris la syntaxe complète du langage de requête, les options de filtre et comment utiliser efficacement la route /filter.

:person_raising_hand: Niveau d’utilisateur requis : Tous les utilisateurs

Utilisation du langage de requête de filtre de sujets Discourse

Le filtre de sujets de Discourse fournit un langage de requête puissant pour trouver des sujets basés sur plusieurs critères. Cette interface de recherche avancée vous permet de combiner des filtres, de trier les résultats et de créer des requêtes précises pour tout contenu sur votre forum.

Accès au filtre

Vous pouvez accéder au filtre de sujets de deux manières :

Accès direct par URL :
Naviguez vers /filter sur votre instance Discourse (par exemple : https://meta.discourse.org/filter)

Navigation dans la barre latérale :
Cliquez sur « Plus » dans votre barre latérale, puis sélectionnez l’option de filtre

L’interface de filtre comprend un système de saisie semi-automatique intelligent qui suggère les filtres et les valeurs disponibles au fur et à mesure que vous tapez.

Syntaxe de requête de base

Les filtres utilisent une syntaxe structurée avec le format :

nom-du-filtre:valeur

Combinaison de plusieurs filtres :

catégorie:support statut:ouvert créé-après:2023-01-01

Inclusion de termes de recherche réguliers :

catégorie:support erreur certificat ssl

Ceci recherche des sujets dans la catégorie « support » contenant les mots « erreur certificat ssl ».

Filtres de catégorie

catégorie: (alias : catégories:)

Filtrer les sujets par catégorie

Utilisation de base :

catégorie:support
catégorie:dev,support          # Sujets dans les catégories dev OU support
catégorie:documentation:admins # Sujets dans la sous-catégorie admins de documentation

Préfixes avancés :

  • = - Catégorie sans sous-catégories : =catégorie:général
  • - - Exclure la catégorie : -catégorie:hors-sujet
  • -= - Exclure la catégorie sans sous-catégories : -=catégorie:méta

Exemples :

catégorie:bug,fonctionnalité          # Inclure les catégories bug ou fonctionnalité (avec sous-catégories)
=catégorie:bug,fonctionnalité         # Inclure les catégories bug ou fonctionnalité (sans sous-catégories)
-catégorie:bug,fonctionnalité         # Exclure les catégories bug ou fonctionnalité (avec sous-catégories)
-=catégorie:bug,fonctionnalité        # Exclure les catégories bug ou fonctionnalité (sans sous-catégories)

Filtres d’étiquettes

étiquette: (alias : étiquettes:)

Filtrer les sujets par étiquettes (nécessite que la mise en étiquette soit activée)

Utilisation de base :

étiquette:bug
étiquette:fonctionnalité,amélioration       # Sujets avec les étiquettes fonctionnalité OU amélioration
étiquette:bug+urgent               # Sujets avec les deux étiquettes bug ET urgent

Exclusion :

-étiquette:résolu                  # Exclure les sujets avec l'étiquette résolu
-étiquette:bug+urgent              # Exclure les sujets avec les deux étiquettes bug et urgent
-étiquette:bug,urgent              # Exclure les sujets avec les étiquettes bug ou urgent

groupe_étiquette:

Filtrer par groupes d’étiquettes

Utilisation de base :

GROUPE_ÉTiquette:modération
-GROUPE_ÉTiquette:staff-only        # Exclure les sujets avec des étiquettes du groupe staff-only

Filtres de date

Tous les filtres de date prennent en charge les dates spécifiques (AAAA-MM-JJ) et les jours relatifs :

Dates d’activité

  • activité-avant: - Sujets dont la dernière activité est antérieure à la date
  • activité-après: - Sujets dont la dernière activité est postérieure à la date

Dates de création

  • créé-avant: - Sujets créés avant la date
  • créé-après: - Sujets créés après la date

Dates du dernier message

  • dernier-message-avant: - Sujets dont le dernier message est antérieur à la date
  • dernier-message-après: - Sujets dont le dernier message est postérieur à la date

Exemples de format de date :

créé-après:2023-12-25     # Date spécifique (AAAA-MM-JJ)
créé-après:30             # Il y a 30 jours
créé-après:1              # Hier
créé-après:0              # Aujourd'hui

Suggestions rapides :

  • 1 - Hier
  • 7 - La semaine dernière
  • 30 - Le mois dernier
  • 365 - L’année dernière

Filtres d’utilisateur

créé-par:

Filtrer par auteur du sujet

Utilisation de base :

créé-par:nomdutilisateur
créé-par:utilisateur1,utilisateur2       # Sujets par utilisateur1 OU utilisateur2
créé-par:@nomdutilisateur         # Le préfixe @ est facultatif

Filtres personnels (utilisateurs authentifiés uniquement)

dans:

Filtrer par votre relation personnelle avec les sujets

Options disponibles :

  • dans:épinglé - Sujets épinglés pour vous
  • dans:marqué - Sujets que vous avez mis en marque-page
  • dans:suivi - Sujets que vous suivez
  • dans:suivi_notifications - Sujets que vous suivez (notifications)
  • dans:ignoré - Sujets que vous avez ignorés
  • dans:normal - Sujets avec un niveau de notification normal
  • dans:suivi_premier_message - Sujets où vous ne suivez que le premier message

Exemples :

dans:marqué catégorie:support
dans:suivi,suivi_notifications         # Sujets que vous suivez OU suivez (notifications)

Filtres numériques

Filtres de likes

  • likes-min: - Nombre minimum de likes total sur tous les messages
  • likes-max: - Nombre maximum de likes total sur tous les messages
  • likes-op-min: - Nombre minimum de likes sur le message d’ouverture
  • likes-op-max: - Nombre maximum de likes sur le message d’ouverture

Filtres de nombre de messages

  • messages-min: - Nombre minimum de messages
  • messages-max: - Nombre maximum de messages

Filtres de participants

  • participants-min: - Nombre minimum de participants
  • participants-max: - Nombre maximum de participants

Filtres de nombre de vues

  • vues-min: - Nombre minimum de vues
  • vues-max: - Nombre maximum de vues

Exemples :

likes-min:10                 # Sujets avec au moins 10 likes
messages-min:5 messages-max:20     # Sujets avec 5 à 20 messages
vues-min:100 likes-op-min:5 # Sujets populaires avec des messages d'ouverture engageants

Filtres de statut

statut:

Filtrer par statut du sujet

Statuts disponibles :

  • statut:ouvert - Sujets ouverts (non fermés ou archivés)
  • statut:fermé - Sujets fermés
  • statut:archivé - Sujets archivés
  • statut:listé - Sujets listés (visibles)
  • statut:non-listé - Sujets non listés
  • statut:supprimé - Sujets supprimés (nécessite une permission)
  • statut:public - Sujets publics (catégories non restreintes)

Statuts spécifiques aux plugins :

  • statut:résolu - Sujets résolus (avec le plugin Solved)
  • statut:non-résolu - Sujets non résolus (avec le plugin Solved)

Exemples :

statut:ouvert catégorie:support
statut:fermé créé-après:30

Options de tri

ordre:

Trier les résultats par différents critères

Tri disponible :

  • ordre:activité - Dernière activité (par défaut, décroissant)
  • ordre:activité-asc - Première activité la plus ancienne
  • ordre:créé - Date de création (les plus récents d’abord)
  • ordre:créé-asc - Les plus anciens d’abord
  • ordre:dernier-message - Date du dernier message
  • ordre:dernier-message-asc - Dernier message le plus ancien
  • ordre:likes - Nombre maximum de likes sur tous les messages
  • ordre:likes-asc - Nombre minimum de likes
  • ordre:likes-op - Nombre maximum de likes sur le message d’ouverture
  • ordre:likes-op-asc - Nombre minimum de likes sur le message d’ouverture
  • ordre:participants - Nombre maximum de participants
  • ordre:participants-asc - Nombre minimum de participants
  • ordre:titre - Par ordre alphabétique du titre
  • ordre:titre-asc - Ordre alphabétique inverse
  • ordre:vues - Nombre maximum de vues
  • ordre:vues-asc - Nombre minimum de vues
  • ordre:catégorie - Nom de la catégorie
  • ordre:catégorie-asc - Nom de catégorie inverse
  • ordre:lu - Date de dernière lecture (utilisateurs authentifiés)
  • ordre:lu-asc - Première lecture la plus ancienne

Exemples avancés

Trouver des discussions récentes populaires :

créé-après:7 likes-min:10 ordre:likes

Sujets de support nécessitant une attention :

catégorie:support statut:ouvert messages-max:3 créé-après:7

Vos sujets de développement mis en marque-page :

catégorie:dev dans:marqué ordre:activité

Exclure les rapports de bugs résolus :

catégorie:bug -étiquette:résolu statut:ouvert ordre:créé

Sujets à fort engagement d’utilisateurs spécifiques :

créé-par:admin,modérateur likes-min:5 vues-min:100

Sujets non listés récents (personnel uniquement) :

statut:non-listé créé-après:30 ordre:créé

Fonctionnalités de saisie semi-automatique

L’entrée du filtre fournit des suggestions intelligentes :

  1. Suggestions de filtres - Affiche les filtres disponibles lorsque vous tapez
  2. Saisie semi-automatique des catégories - Suggère des catégories par nom ou slug
  3. Saisie semi-automatique des étiquettes - Suggère des étiquettes avec le nombre de messages
  4. Saisie semi-automatique des noms d’utilisateur - Suggère des noms d’utilisateur avec des noms d’affichage
  5. Suggestions de dates - Propose des options de dates rapides (hier, semaine dernière, etc.)
  6. Support des préfixes - Affiche les options de préfixes pour les catégories et les étiquettes

Conseils et bonnes pratiques

  1. Utilisez la saisie semi-automatique - L’interface de filtre fournit des suggestions intelligentes lorsque vous tapez
  2. Combinez les filtres - Mélangez différents types de filtres pour des résultats précis
  3. Partagez les URL de filtre - Les URL de filtre sont partageables - copiez l’URL pour partager votre recherche
  4. Ajoutez des filtres utiles à votre barre latérale - Les URL de filtre peuvent être ajoutées à votre barre latérale pour un accès facile
  5. Utilisez l’exclusion - Utilisez le préfixe - pour exclure les résultats indésirables
  6. Raccourcis de date - Utilisez des nombres pour les dates relatives (30 = il y a 30 jours)
  7. Navigation au clavier - Utilisez les touches fléchées pour naviguer dans les suggestions, Tab/Entrée pour sélectionner

Création de liens de barre latérale personnalisés

Vous pouvez ajouter des liens de filtre à votre barre latérale en tant que liens personnalisés :

  1. Accédez aux paramètres de votre barre latérale
  2. Ajoutez un lien personnalisé avec une URL de filtre comme /filter?q=catégorie:support statut:ouvert
  3. Donnez-lui un nom descriptif comme « Sujets de support ouverts »

Notes techniques

  • Le filtre utilise la recherche plein texte pour les mots-clés combinés avec des filtres
  • La longueur minimale des termes de recherche s’applique aux recherches par mots-clés
  • Les résultats tiennent compte des permissions - vous ne voyez que les sujets auxquels vous pouvez accéder
  • Les requêtes de filtre sont traitées côté serveur pour des performances optimales
  • La fonctionnalité prend en charge les extensions de plugin pour des filtres personnalisés

Ressources supplémentaires

11 « J'aime »

3 messages ont été déplacées vers un nouveau sujet : Build onebox support for topic filters

Est-ce possible ? Je sais que vous pouvez regarder uniquement les premiers messages dans une catégorie, mais comment cela fonctionne-t-il sur un sujet ?

3 « J'aime »

Probablement besoin de clarifications, je pense qu’il trouvera tous les sujets dans les catégories que vous regardez en premier lieu, mettra à jour

2 « J'aime »

Existe-t-il un moyen de le combiner avec les filtres classiques non lus/nouveaux également ?

2 « J'aime »

Je pense qu’il y a une URL bidon, mais je peux ajouter la prise en charge de status:unread-posts et topics demain, ce n’est pas trop difficile.

3 « J'aime »

Je pense que je préférerais in: car c’est un filtre personnel comme les favoris ou le suivi. Les statuts font référence au statut du sujet.

Je m’attendrais à ce que watching renvoie tous les sujets que je surveille, pas tous les sujets des catégories que je surveille. Est-ce une mauvaise hypothèse ? Je trouve cela déroutant si « watching first post » fait référence à la catégorie alors que les autres statuts font référence aux sujets.

2 « J'aime »

Nous pourrions avoir besoin d’un autre opérateur pour cette sémantique de surveillance.

D’accord, je devrai peut-être modifier les internes pour prendre en charge plusieurs clauses in.

J’aimerais avoir un moyen de le filtrer par sujets que je n’ai pas encore consultés, et par ceux auxquels je n’ai pas encore répondu !

Est-ce possible ?

Par exemple, un filtre pour « Articles dans la catégorie Introductions auxquels je n’ai pas encore répondu ».

2 « J'aime »

post:

in:unseen category:welcome -user:shauny

Ou même si vous ne vous souciez pas des messages non lus, vous pouvez utiliser :

category:welcome -user:shauny

Existe-t-il une prise en charge pour des choses comme in:first comme dans la recherche ? Merci.

Comment verriez-vous son fonctionnement ?

Par exemple, afficher tous les sujets avec un mot-clé spécifique pour les masquer (plutôt que d’utiliser la recherche).

Cela fonctionne déjà :

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

Et cela fonctionne aussi :

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

Mais je suppose que s’il y a un autre mot-clé comme in:first qui n’est pas géré par le filtre, nous pouvons le transmettre à la recherche…

1 « J'aime »

Ah, je vois - f recherche cela dans le premier message. Je ne l’ai pas trouvé dans le doc, j’ai dû regarder ici. Merci !

1 « J'aime »

Un filtre qui me manque est « aucun minuteur de sujet défini pour se fermer » ou « aucun minuteur de sujet défini pour se fermer après la dernière réponse ». Existe-t-il et je ne le trouve tout simplement pas ?

J’utilise un filtre lié depuis ma barre latérale pour trier les sujets de support ici sur meta à mesure qu’ils vieillissent sans être résolus.

Voici le filtre tel qu’il apparaît actuellement :

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

Il fonctionne assez bien, mais comme vous le verrez, certains sujets listés ont des minuteurs de sujet que je souhaiterais ne plus voir dans la liste.