L'exécution de la recherche dans la documentation HTML générée par Sphinx est entièrement basée sur JavaScript et fonctionne comme suit :
-
Lorsque vous construisez un projet Sphinx, un fichier JavaScript contenant l'index de recherche est créé ( searchindex.js
).
-
Lorsque vous exécutez une requête de recherche, l'interface de recherche identifie tous les fichiers considérés comme pertinents et récupère leurs fichiers sources sur le serveur. Il s'agit de simples fichiers GET
qui ne nécessitent qu'un serveur de fichiers statiques. Les extraits de ces fichiers qui contiennent la séquence de caractères appropriée seront affichés.
De manière surprenante, l'algorithme de recherche ( searchtools.js
dans la construction html dans le _static
) ne prend en compte que le premier (le répertoire q
). Tous les autres paramètres sont ignorés.
Notez qu'il est possible de relier Sphinx à un moteur de recherche. Par exemple, le service d'hébergement de documentation Lire les documents met en œuvre un back-end de recherche basé sur Haystack/Elasticsearch . Cela signifie que mon explication ne s'applique pas nécessairement à tous les cas d'ensembles de documentation générés par Sphinx.