Cartouche | |
---|---|
ZEP | 15 |
Titre | Navigation à facettes à travers le site |
Révision | 1 |
Date de création | 2014-08-19 |
Dernière révision | 2014-08-19 |
Type | Feature |
Statut | Rédaction |
Contexte
État de l'art
Aujourd'hui on a plein de manières de naviguer sur le site, qui nous permettent toutes de retrouver, ou non, ce qu'on cherche :
- Les tutoriels sont rangés dans des catégories (2 niveaux) et ont des tags (inexploitables en l'état)
- Les articles sont rangés en vrac et ont des tags (inexploitables en l'état)
- Les forums sont rangées dans des catégories (2 niveaux) et ont des tags (exploitables, bien que pas top, en l'état)
- Le moteur de recherche permet de rechercher dans les tutos, articles et forums. Il possède un système de filtre assez obscur (on ne sait pas trop ce qui correspond à quoi, l'ordre est bizarre, on ne sait pas si filtrer va nous fournir des résultats)
- L'accueil fournit un accès direct à certains éléments (recherche de base, derniers tutos et article)
- Les forums ont une page principale utilisable (catégories)
- Les tutoriels et les articles sont rangés en vrac dans leur page principale
Problèmes rencontrés
Aujourd'hui, il est assez difficile de retrouver quelque chose en particulier. C'est d'autant plus vrai si, en tant que débutant, on ne sait pas exactement ce qu'on cherche.
Les tutos et articles en particuliers sont problématiques : le système de classification (tags) est très mal exploité pour l'instant. Un tuto qui n'est plus en page d'accueil est pour ainsi dire invisible.
La page d'accueil répond à des problématiques spécifiques et dépend de sa ZEP propre. Elle ne rentre pas en compte ici.
Proposition
La proposition en quelques mots
L'idée est de rationaliser toute notre navigation et de s'appuyer massivement sur une navigation à facettes pour parcourir l'intégralité du contenu du site.
Ceci nous permettrait de simplifier et rationaliser la navigation dans le site, et donc d'augmenter la pertinence de la recherche et la facilité d'extraction d'information, et subséquemment la satisfaction de nos visiteurs.
D'accord, mais qu'est-ce qu'une navigation à facettes ?
C'est un concept qui est d'abord utilisé dans le commerce électronique. Il s'agit de présenter une recherche (au sens large du terme : ce peut être une page catégorie) de produits, avec un ensemble de filtres (exemples : couleur, prix, taille, etc.)
Ces filtres, appelés "facettes", sont intelligents, et ce avec deux critères principaux :
- Les facettes présentées sont pertinentes par rapport au contexte. Si je peux présenter des voitures et des chaussures, je ne vais mettre la facette "pointure" que si j'affiche des chaussures.
- Les facettes garantissent au moins un résultat : si j'applique un filtre proposé, j'ai la certitude d'avoir au moins un résultat (sinon le filtre n'est pas présenté). On peut même préciser le nombre de résultats qui sera obtenu si on applique le filtre. En fait, le point 1 est une conséquence de celui-ci si les facettes sont bien définies.
Plus d'informations ici :
- http://fr.wikipedia.org/wiki/Recherche_à_facettes
- http://www.prestashop.com/blog/fr/la-navigation-a-facette-pourquoi/
Que mets-on dans ces facettes ?
Les contenus facettés, dans l'idéal, seraient les suivants :
- Tutoriels et articles1
- Tribunes, si elles sont mises en places
- Sujets de forums
- Membres
- Pages statiques
Les facettes seraient les suivantes :
- Tags hiérarchisés, notion détaillée ci-dessous qui mélangent tags et catégories (multi-sélection possible)
- Type de contenu (multi-sélection possible)
- Auteur
- Date de publication
- Date de dernière mise à jour
Les tags sont communs à travers tout le site. Si je demandele tag "Python" sans préciser de type de type de contenu, j'aurai des tutos, des articles, des tribunes et des sujets de forum dans mes résultats !
La notion de tags hiérarchisés
(Je me demande si cette notion ne nécessiterait pas une ZEP à part entière…)
Aujourd'hui, les tags sont "à plat" : si j'ai un tag "Django", je ne sais pas que c'est du Python. Inversement, si je recherche tout ce qui concerne "Python" pour aider, je ne verrai pas ce qui est taggué "Django".
L'idée est d'avoir un système de hiérarchie des tags : tout tag peut avoir un et un seul tag parent. On peut donc remonter une hiérarchie pour chaque tag ; exemple : Programmation > Java > Java EE > Expression Language (EL)
Donc, avec un tel système, si je cherche "Java", j'ai non seulement "Java" mais aussi tous ses enfants.
Outil de gestion
Il faudrait un outil de gestion des tags, qui permettrait de :
- Définir / modifier le tag parent (hiérarchie)
- Modifier le libellé d'affichage
- Fusionner 2 tags qui seraient identiques
Suggestions pour l'utilisateur
Parce que l'utilisateur ne peut pas inventer les tags lui-même, il faudrait lui suggérer ceux qui existent, tout en lui laissant la possibilité d'en créer un nouveau si besoin.
Comment on fait ça ?
Un moteur de recherche à facettes
Là, pas besoin d'aller là : notre moteur actuel, Solr, est déjà un moteur de recherches à facettes. Il "suffit" donc de lui paramétrer les bonnes facettes, d'indexer le contenu en fonction, et hop ! On a les réponses complètes qui nous permettent de créer les vues ! (y compris l'information du nombre de résultat obtenus en appliquant tel ou tel filtre).
Intégration avec Django
Aujourd'hui on interroge pas Solr directement, on passe par un truc qui s'appelle Haystack. Or, Haystack fait pas mal de magie en automatisant beaucoup de choses, y compris la génération du fichier de configuration de Solr
Ici un POC est nécessaire pour savoir dans quelle mesure on va pouvoir utiliser Haystack, et dans quelle mesure il va falloir faire des trucs en plus.
La vue en facettes
C'est une vue qui ressemble un peu aux résultats de recherche actuels :
- En haut, le terme recherché (s'il existe) + un gros champ de recherche texte
- Menu de gauche : en haut les facettes sélectionnées, en-dessous les facettes disponibles
- Zone de contenu principal : les résultats en fonction du terme recherché et des facettes sélectionnées
Impacts sur la navigation
Page d'accueil
Rien, voir la ZEP correspondante
Accueil des tutos / articles / tribunes
Ces pages sont remplacées par une vue, avec la facette "type" pré-sélectionnée sur le bon type.
Accueil des forums
Pour garantir le principe de moindre surprise, la vue actuelle en catégories / sous-catégories est conservée.
Page des tags
C'est une vue de facettes avec le tag sélectionné mais pas le type de contenu.
Page de recherche
C'est une bête vue en facettes
Contenu indexé et facetté, en détail
- Tutoriels, articles, tribunes publiés
- Tags hiérarchiques (facette)
- Titre
- Sous-titre
- Date de publication (facette)
- Date de dernière mise à jour (facette)
- Auteurs (facette)
- Contenu intégral (toutes les intros, toutes les conclusions, toutes les parties)
- Sujets de forums
- Tags hiérarchiques (facette)
- Titre
- Sous-titre
- Date de publication (facette)
- Date du dernier post (facette)
- Auteur (facette)
- Groupe d'appartenance (public ou non)
- Contenu du premier message
- Messages de forums
- Sujet
- Auteur (facette)
- Date de publication (facette)
- Groupe d'appartenance (public ou non)
- Contenu du message
Ceux-ci sont plus délicat, mais seraient utiles à trouver dans la recherche
- Membres
- Nom
- Biographie
- Pages statiques
- Titre
- Contenu
Je pense qu'il reste des questions, mais j'aimerais déjà votre premier retour sur l'idée.
-
Quelle que soit la distinction finalement opérée entre ces termes. ↩