Add advanced TF-IDF search with autocomplete, query operators, facets, pagination, and accent normalization
This commit is contained in:
@@ -46,7 +46,10 @@
|
||||
|
||||
- **🗂️ Multi-vault** : Visualisez plusieurs vaults Obsidian simultanément
|
||||
- **🌳 Navigation arborescente** : Parcourez vos dossiers et fichiers dans la sidebar
|
||||
- **🔍 Recherche fulltext** : Recherche instantanée dans le contenu et les titres
|
||||
- **🔍 Recherche avancée** : Moteur TF-IDF avec normalisation des accents, snippets surlignés, facettes, pagination et tri
|
||||
- **💡 Autocomplétion intelligente** : Suggestions de fichiers, tags et historique avec navigation clavier
|
||||
- **🧩 Syntaxe de requête** : Opérateurs `tag:`, `#`, `vault:`, `title:`, `path:` avec chips visuels
|
||||
- **📜 Historique de recherche** : Persisté en localStorage (max 50 entrées, LIFO, dédupliqué)
|
||||
- **🏷️ Tag cloud** : Filtrage par tags extraits des frontmatters YAML
|
||||
- **🔗 Wikilinks** : Les `[[liens internes]]` Obsidian sont cliquables
|
||||
- **🖼️ Images Obsidian** : Support complet des syntaxes d'images Obsidian avec résolution intelligente
|
||||
@@ -347,7 +350,10 @@ ObsiGate expose une API REST complète :
|
||||
| `/api/file/{vault}/download?path=` | Téléchargement d'un fichier | GET |
|
||||
| `/api/file/{vault}/save?path=` | Sauvegarder un fichier | PUT |
|
||||
| `/api/file/{vault}?path=` | Supprimer un fichier | DELETE |
|
||||
| `/api/search?q=&vault=&tag=` | Recherche fulltext | GET |
|
||||
| `/api/search?q=&vault=&tag=` | Recherche fulltext (legacy) | GET |
|
||||
| `/api/search/advanced?q=&vault=&tag=&limit=&offset=&sort=` | Recherche avancée TF-IDF avec facettes et pagination | GET |
|
||||
| `/api/suggest?q=&vault=&limit=` | Suggestions de titres de fichiers (autocomplétion) | GET |
|
||||
| `/api/tags/suggest?q=&vault=&limit=` | Suggestions de tags (autocomplétion) | GET |
|
||||
| `/api/tags?vault=` | Tags uniques avec compteurs | GET |
|
||||
| `/api/index/reload` | Force un re-scan des vaults | GET |
|
||||
| `/api/image/{vault}?path=` | Servir une image avec MIME type approprié | GET |
|
||||
@@ -364,15 +370,63 @@ curl http://localhost:2020/api/health
|
||||
# Lister les vaults
|
||||
curl http://localhost:2020/api/vaults
|
||||
|
||||
# Rechercher
|
||||
# Recherche simple (legacy)
|
||||
curl "http://localhost:2020/api/search?q=recette&vault=all"
|
||||
|
||||
# Recherche avancée avec TF-IDF, facettes et pagination
|
||||
curl "http://localhost:2020/api/search/advanced?q=recette%20tag:cuisine&vault=all&limit=20&offset=0&sort=relevance"
|
||||
|
||||
# Autocomplétion de titres
|
||||
curl "http://localhost:2020/api/suggest?q=piz&vault=all"
|
||||
|
||||
# Autocomplétion de tags
|
||||
curl "http://localhost:2020/api/tags/suggest?q=rec&vault=all"
|
||||
|
||||
# Obtenir un fichier
|
||||
curl "http://localhost:2020/api/file/Recettes?path=pizza.md"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Recherche avancée
|
||||
|
||||
### Syntaxe de requête
|
||||
|
||||
| Opérateur | Description | Exemple |
|
||||
|-----------|-------------|---------|
|
||||
| `tag:<nom>` | Filtrer par tag | `tag:recette docker` |
|
||||
| `#<nom>` | Raccourci tag | `#linux serveur` |
|
||||
| `vault:<nom>` | Filtrer par vault | `vault:IT kubernetes` |
|
||||
| `title:<texte>` | Filtrer par titre | `title:pizza` |
|
||||
| `path:<texte>` | Filtrer par chemin | `path:recettes/soupes` |
|
||||
| `"phrase exacte"` | Recherche de phrase | `tag:"multi mots"` |
|
||||
|
||||
Les opérateurs sont combinables : `tag:linux vault:IT serveur web` recherche "serveur web" dans le vault IT avec le tag linux.
|
||||
|
||||
### Raccourcis clavier
|
||||
|
||||
| Raccourci | Action |
|
||||
|-----------|--------|
|
||||
| `Ctrl+K` / `Cmd+K` | Focaliser la barre de recherche |
|
||||
| `/` | Focaliser la recherche (hors champ texte) |
|
||||
| `↑` / `↓` | Naviguer dans les suggestions |
|
||||
| `Enter` | Sélectionner la suggestion active ou lancer la recherche |
|
||||
| `Escape` | Fermer les suggestions / quitter la recherche |
|
||||
|
||||
### Fonctionnalités
|
||||
|
||||
- **TF-IDF** : Scoring basé sur la fréquence des termes pondérée par l'inverse de la fréquence documentaire
|
||||
- **Boost titre** : Les correspondances dans le titre reçoivent un score 3× supérieur
|
||||
- **Normalisation des accents** : `resume` trouve `résumé`, `elephant` trouve `éléphant`
|
||||
- **Snippets surlignés** : Les termes trouvés sont encadrés par `<mark>` dans les extraits
|
||||
- **Facettes** : Compteurs par vault et par tag dans les résultats
|
||||
- **Pagination** : Navigation par pages de 50 résultats
|
||||
- **Tri** : Par pertinence (TF-IDF) ou par date de modification
|
||||
- **Chips visuels** : Les filtres actifs sont affichés comme des chips colorés supprimables
|
||||
- **Historique** : Les 50 dernières recherches sont mémorisées en localStorage
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Dépannage
|
||||
|
||||
### Problèmes courants
|
||||
|
||||
Reference in New Issue
Block a user