Ce document décrit l’API de recherche v2 de Fess. Pour l’enveloppe de réponse commune, le modèle d’erreur et les jetons CSRF, voir Vue d’ensemble de l’API.
L’URL de base est http://<Server Name>/api/v2/ (exemple en environnement local : http://localhost:8080/api/v2).
Le paramètre q accepte la même syntaxe de recherche que l’écran de recherche standard (recherche AND/OR/NOT, spécification de champ, caractères génériques, recherche floue, etc.). Pour plus de détails sur la syntaxe de recherche, consultez Guide utilisateur Fess.
Recherche de documents
Requête
| Méthode HTTP | GET |
| Point de terminaison | /api/v2/search |
Recherche les documents correspondant à la requête et retourne les résultats dans l’enveloppe commune. Tous les noms de champs dans le corps de la réponse utilisent le format snake_case.
Paramètres de requête
Tableau : Paramètres de requête
Réponse
En cas de succès (200), les champs suivants sont retournés directement sous response dans l’enveloppe commune.
Les détails de chaque champ sont les suivants.
Tableau : Champs de réponse
Note
Lorsqu’un plugin envoie la recherche ailleurs au lieu de l’exécuter (par exemple un « bang » à la DuckDuckGo comme !g), la réponse de succès ne contient que q et redirect_url. Le client doit naviguer vers redirect_url.
Réponse d’erreur
Pour le détail du modèle d’erreur, voir Vue d’ensemble de l’API. Les statuts HTTP retournés par ce point de terminaison sont les suivants.
Tableau : Réponses d’erreur
Récupération de tous les documents (recherche par défilement / NDJSON)
Requête
| Méthode HTTP | GET |
| Point de terminaison | /api/v2/documents/all |
Diffuse en continu tous les documents correspondant à la requête au format NDJSON (application/x-ndjson). Chaque ligne est un objet {"data":{...}} contenant les champs autorisés par QueryFieldConfig#isApiResponseField. Contrairement à GET /search, le score de recherche score n’est pas inclus.
En cas d’échec en cours de stream, la ligne finale sera la suivante.
Le client doit donc vérifier la première clé de la dernière ligne pour distinguer une fin normale (data) d’une erreur serveur (error).
La requête est construite avec le même ensemble de paramètres que GET /search (q, sort, num, lang, ex_q, sdh, fields.*, as.*, track_total_hits, facet.*, geo.*). La recherche par défilement est désactivée par défaut (api.search.scroll=false). Tant qu’elle est désactivée, une erreur invalid_request (400) est retournée. Pour l’activer, définissez api.search.scroll=true dans fess_config.properties (voir Récupération en masse des résultats de recherche).
Paramètres de requête
Les paramètres explicitement définis dans la spécification sont les suivants.
Tableau : Paramètres de requête
Réponse
En cas de succès (200), le Content-Type est application/x-ndjson, et les résultats sont retournés à raison d’un document par ligne.
Réponse d’erreur
Pour le détail du modèle d’erreur, voir Vue d’ensemble de l’API. Les statuts HTTP retournés par ce point de terminaison sont les suivants.
Tableau : Réponses d’erreur