Une solution de recherche de documents par calcul de similarité fait maison
.
Windows Terminal :
set url=mysql+pymysql://<login>:<password>@<ip_or_hostname_or_fqdn>:<port>/<db_name>
docker-compose up -d --build
Linux :
docker-compose up -d --build \
-e url=mysql+pymysql://<login>:<password>@<ip_or_hostname_or_fqdn>:<port>/<db_name>
docker run -d -e url=mysql+pymysql://<login>:<password>@<ip_or_hostname_or_fqdn>:<port>/<db_name> -p 5000:5000 ownedge/9mois
L'API de recherche est connectée à la base de données de l'application et va indéxer son contenu au lancement de l'API.
L'API de recherche offre deux points de terminaisons :
-
/update
permet de mettre à jour l'indexage lorsque le contenu de la base de données à été modifiée, sans devoir relancer le service. -
/search
est la route principale permettant d'obtenir la réponse de la recherche. la méthode prends deux arguments :query
: contenu de la recherchetable_choices
(facultatif): Sélection des tables dans lesquels effectuer la recherche. S'il -n'est pas fourni, la recherche sera effectuée sur toutes les tables par défaut.
Le résultat de la recherche est un document sérialisé dont la structure de données est :
{ "query": query (str), "table": table_choices (str), "results": [ { "score": score de similarité (float), "document_id": id du document au sein de la base de données (int), "document": contenu du document (str), "table": nom de la table contenant le document (str) } ] }
Exemple d'appel API en locale :
http://localhost:5000/search?query=quoi%20manger%20pour%20avoir%20du%20fer&Table=articles