Page de Recherche/Recherche avancée #120

Open
opened 2023-05-13 12:39:49 +02:00 by Eragon · 4 comments
Member

Le champ de recherche de la v5 n'a pour l'instant pas d'utilité. Il est là pour faire joli.
Ce serait cool de pouvoir rechercher parmi le forum, les programmes et peut-être les utilisateurs. Pour ça il faut décider de comment on gère les typo dans la recherche, si on utilise les fonctionnalités de recherche de postgres ou d'un autre moteur de recherche, ou si on fait notre propre tambouille.
Qu'est-ce qu'on fait pour la recherche ?


Ma proposition
Une page de recherche /rechercher/{query}
Une seule page pour la recherche « normale » et « avancée ». Avec les options de recherche avancée dans une « case » sur le côté des résultats.
Dans les options avancées on peu avoir :

  • Forum (défaut)
    • Tout (défaut)
    • Actualités
    • Aide et questions
    • Forum des projets
    • Vie communautaire
    • Administration (Réservé a l'équipe du site)
    • CreativeCalc (Réservé au membres de CC)
  • Programmes (défaut)
    • Tout (défaut)
    • Jeux
    • Utilitaires
    • Logiciels
  • Utilisateurs
  • Tutoriels (défaut)
    • Tout (défaut)
    • Basic
    • C/C++
    • Arduino
  • Sprites
    • Tout (défaut si Sprites coché)
    • Personnages
    • Environnement
    • Objets
    • Interfaces

Il faudra sans doute cacher les sous-options dans un spoiler pour garder tout ça lisible.
Seuls les options choisis par défaut sont actives dans la recherche « normale ».
Les recherches dans les utilisateurs concernent uniquement le pseudo, description et signature des utilisateurs, pas leurs posts, programmes ou autre contenu.
La recherche dans le forum d'administration est activé par défaut pour les membres de l'équipe du site. La même chose est faite pour le forum de CC.

Au niveau de la typographie on devrai idéalement pouvoir oublier un accent/se tromper d'accent, oublier un s a la fin d'un mot au milieu d'une phrase. Et quand même avoir le résultat attendu, j'imagine que les erreurs dans le genre sont faciles a faire et on devrai pouvoir les gérer.
Ça rend le code un poil plus compliqué mais ça me semble bien mieux que ce qu'on a actuellement avec la v4.

Pour le niveau technique je sais que c'est possible d'utiliser la recherche « plain text » de postgreSQL pour ça, j'ai un pote de promo qui a bossé avec pendant un an. Les performances devraient être ok, mais il faudrait tester sur le VPS comment il tient (Ça pourrai lui demander un peu de travail de construire un index pour la recherche.)


Petite liste des fonctionnalités

  • Recherche de base dans les titres des topics et les commentaires.
  • Recherche dans les programmes
  • Dans les utilisateurs
  • Tutoriels
  • Sprites
  • Sélection des sous-forums/catégories de jeux/sprites/programmes
  • Recherche acceptant:
    • les fautes d'orthographe
    • le français
    • l'anglais
  • Changer l'ordre de tri:
    • par date d'envoi
    • par pertinence
    • par date d'édition
    • croissant/décroissant
  • Pagination des résultats
Le champ de recherche de la v5 n'a pour l'instant pas d'utilité. Il est là pour faire joli. Ce serait cool de pouvoir rechercher parmi le forum, les programmes et peut-être les utilisateurs. Pour ça il faut décider de comment on gère les typo dans la recherche, si on utilise les fonctionnalités de recherche de postgres ou d'un autre moteur de recherche, ou si on fait notre propre tambouille. Qu'est-ce qu'on fait pour la recherche ? --- **Ma proposition** Une page de recherche `/rechercher/{query}` Une seule page pour la recherche « normale » et « avancée ». Avec les options de recherche avancée dans une « case » sur le côté des résultats. Dans les options avancées on peu avoir : - Forum (défaut) - Tout (défaut) - Actualités - Aide et questions - Forum des projets - Vie communautaire - Administration (Réservé a l'équipe du site) - CreativeCalc (Réservé au membres de CC) - Programmes (défaut) - Tout (défaut) - Jeux - Utilitaires - Logiciels - Utilisateurs - Tutoriels (défaut) - Tout (défaut) - Basic - C/C++ - Arduino - Sprites - Tout (défaut si Sprites coché) - Personnages - Environnement - Objets - Interfaces Il faudra sans doute cacher les sous-options dans un spoiler pour garder tout ça lisible. Seuls les options choisis par défaut sont actives dans la recherche « normale ». Les recherches dans les utilisateurs concernent uniquement le pseudo, description et signature des utilisateurs, pas leurs posts, programmes ou autre contenu. La recherche dans le forum d'administration est activé par défaut pour les membres de l'équipe du site. La même chose est faite pour le forum de CC. Au niveau de la typographie on devrai idéalement pouvoir oublier un accent/se tromper d'accent, oublier un `s` a la fin d'un mot au milieu d'une phrase. Et quand même avoir le résultat attendu, j'imagine que les erreurs dans le genre sont faciles a faire et on devrai pouvoir les gérer. Ça rend le code un poil plus compliqué mais ça me semble bien mieux que ce qu'on a actuellement avec la v4. Pour le niveau technique je sais que c'est possible d'utiliser la recherche « plain text » de postgreSQL pour ça, j'ai un pote de promo qui a bossé avec pendant un an. Les performances devraient être ok, mais il faudrait tester sur le VPS comment il tient (Ça pourrai lui demander un peu de travail de construire un index pour la recherche.) --- ### Petite liste des fonctionnalités - [x] Recherche de base dans les titres des topics et les commentaires. - [x] Recherche dans les programmes - [ ] Dans les utilisateurs - [ ] Tutoriels - [ ] Sprites - [ ] Sélection des sous-forums/catégories de jeux/sprites/programmes - [x] Recherche acceptant: - [x] les fautes d'orthographe - [x] le français - [x] l'anglais - [ ] Changer l'ordre de tri: - [ ] par date d'envoi - [ ] par pertinence - [ ] par date d'édition - [ ] croissant/décroissant - [x] Pagination des résultats
Eragon added the
enhancement
proposal
labels 2023-05-13 12:39:49 +02:00
Owner

C'est quelque chose de compliqué et qu'on n'a pas envie de coder nous-même. PostgreSQL a déjà les outils pour ça (y compris plus d'opérateurs que je ne peux imaginer utiles) donc je pense que ce serait bien de s'y limiter.

C'est quelque chose de compliqué et qu'on n'a pas envie de coder nous-même. PostgreSQL a déjà les outils pour ça (y compris plus d'opérateurs que je ne peux imaginer utiles) donc je pense que ce serait bien de s'y limiter. * Documentation : [Chapter 12. Full Text Search](https://www.postgresql.org/docs/current/textsearch.html) * Tutoriel tiers : [Postgres Full-Text Search: A Search Engine in a Database](https://www.crunchydata.com/blog/postgres-full-text-search-a-search-engine-in-a-database)
Author
Member

Je suis d'accord pour l'implémentation, mais qu'est-ce qu'on veut offrir comme possibilité a l'utilisateur ?

D'ailleurs j'ai l'idée que mon URL est pas complète, j'ai oublié une méthode pour passer les options.

Je suis d'accord pour l'implémentation, mais qu'est-ce qu'on veut offrir comme possibilité a l'utilisateur ? D'ailleurs j'ai l'idée que mon URL est pas complète, j'ai oublié une méthode pour passer les options.
Owner

Pardon j'étais un peu trop préoccupé par la question de l'implémentation quand j'ai vu l'issue, et j'ai oublié de détailler.

Je pense que tu ce que tu décris est un très bon début. J'imagine que quelques options en plus pourraient aider : par exemple "rechercher dans les messages de Ninestars" ou "rechercher dans le topic de gint", ou encore "rechercher les messages de Totoyo dans le topic des suggestions" sont des versions qui me seraient bien utiles de temps en temps. Souvent je sais qui a dit ce que je cherche mais je ne connais pas le mot exact et donc c'est plus facile de restreindre de cette façon.

Ensuite je pense que Postgres nous laissera filtrer dans les tables donc par exemple "chercher dans les posts récents" serait ensuite une option. Mais ça on pourra certainement l'ajouter une fois qu'on aura une base !

Pardon j'étais un peu trop préoccupé par la question de l'implémentation quand j'ai vu l'issue, et j'ai oublié de détailler. Je pense que tu ce que tu décris est un très bon début. J'imagine que quelques options en plus pourraient aider : par exemple "rechercher dans les messages de Ninestars" ou "rechercher dans le topic de gint", ou encore "rechercher les messages de Totoyo dans le topic des suggestions" sont des versions qui me seraient bien utiles de temps en temps. Souvent je sais qui a dit ce que je cherche mais je ne connais pas le mot exact et donc c'est plus facile de restreindre de cette façon. Ensuite je pense que Postgres nous laissera filtrer dans les tables donc par exemple "chercher dans les posts récents" serait ensuite une option. Mais ça on pourra certainement l'ajouter une fois qu'on aura une base !
Author
Member

Je pense qu'il faut aussi des options de tris.

  • Croissant/Décroissant
  • Par ordre alphabétique
  • Par date de dernière édition
  • Par date d'envoi

Pour la recherche dans les posts récents j'imagine juste faire un tris par date en partant de la date la plus récente (je sais jamais si c'est croissant ou décroissant).

Je pense qu'il faut aussi des options de tris. - Croissant/Décroissant - Par ordre alphabétique - Par date de dernière édition - Par date d'envoi Pour la recherche dans les posts récents j'imagine juste faire un tris par date en partant de la date la plus récente (je sais jamais si c'est croissant ou décroissant).
Eragon was assigned by Darks 2023-06-07 21:51:53 +02:00
Darks added the
Core
label 2023-07-26 10:15:47 +02:00
Sign in to join this conversation.
No description provided.