iteration Projet 11 - “Première version d’un moteur web PKM”.

Voici les nouveautés suite à la dernière note d’iteration du Projet 11 - “Première version d’un moteur web PKM”.

Ce commit contient le résultat du travail du Projet 13, c’est-à-dire le refactoring de PostgreSQL vers Elasticsearch ainsi que la page /src/routes/search qui permet à la fois d’effectuer une recherche sur le contenu des notes et un filtrage de type and sur les tags.

Une démo est visible ici https://notes.develop.sklein.xyz/

Ma Developer eXperience avec Elasticsearch est excellente. J’ai trouvé toutes les fonctionnalités dont j’avais besoin.

Je pense que mon utilisation des Fleeting Note n’est pas la bonne. Je pense que les notes que je qualifie de Fleeting Note sont en réalité des Diary notes ou Journal notes.

J’ai donc décidé de :

  • Renommer partout fleeting_note en journal_notes

Après implémentation, j’ai réalisé que j’ai fait l’erreur de mélanger l’implémentation de le page qui affiche la liste des notes antéchronologiques et la page de recherche.

Pour être efficace, le résultat de la page recherche doit être affiché en fonction du scoring de la recherche, alors que les pages listes de notes par date de publication.

J’ai donc décidé de :

  • Implémenter une page /diaries/ (pour la cohérence des path en anglais, je préfère “diaries” à “journaux”) qui affiche une liste de notes de type Diary notes ;
    • Cette page doit permettre un filtrage par tags
  • Implémenter une page /notes/ qui affiche une liste des notes qui ne sont pas de type Diary notes, comme des Evergreen Note, Hub note
    • Contrairement à la page liste des Diary notes, cette page de liste ne doit pas afficher le contenu des notes, mais seulement le titre des notes ;
    • Je propose de classer ces titres de notes par ordre alphabétique ;
    • Je propose aussi de séparer ces notes par lettre, A, B… c’est-à-dire un index alphabétique.
    • Cette page doit permettre un filtrage par tags
  • Refactoring la page /search/ pour ordonner le résultat de la recherche par scoring.
    • Cette page doit afficher le contenu des notes avec highligthing ;
    • Cette page doit permettre un filtrage sur les types de notes, pour le moment Diary notes et Evergreen Note.
    • Cette page doit permettre un filtrage par tags

Au moment où j’écris ces lignes, je ne sais pas encore comment je vais gérer les opérateurs or, (.

Pour le moment, le filtrage multi tags est effectué avec des and.


Tous les tags présents dans la note :