API Barrel

Le module barrel, le point d'entree unique de la base de donnees embarquee, groupe par domaine.

Ceci est le module barrel, la seule API que vous utilisez pour embarquer la base de donnees. Chaque fonction prend le handle de base de donnees renvoye par barrel:open/1,2 (sauf les appels de cycle de vie). Reportez-vous aux guides pour des exemples concrets ; cette page est la carte.

Cycle de vie

FonctionDescription
open/1, open/2Ouvrir (en creant si besoin) une base de donnees ; open/2 prend des options par couche. Renvoie un handle.
close/1Fermer un handle de base de donnees.
info/1Infos de base de donnees (compteurs, planchers, curseurs).
delete/1Supprimer une base de donnees et ses fichiers.

Ouvrez depuis un processus a longue duree de vie : la base de donnees lie son store vectoriel a l’appelant. Voir Integrer Barrel.

Documents

FonctionDescription
put_doc/2,3Creer ou mettre a jour un document (une map avec <<"id">>).
get_doc/2,3Lire un document par id.
delete_doc/2,3Supprimer un document (ecrit un tombstone).
find/2,3Requete structuree par chemin (#{where => [...]}).
put_docs/2,3, get_docs/2,3, delete_docs/2Variantes par lot ; un resultat par id, dans l’ordre.

Requetes (BQL)

FonctionDescription
query/2,3Lancer une instruction BQL ; renvoie lignes + meta.
query_fold/5Diffuser une requete par morceaux (chunk_size, has_more/continuation).
explain_query/2,3Renvoyer le plan d’une instruction BQL.

Voir la reference BQL et le guide des requetes.

Pieces jointes

FonctionDescription
put_attachment/4, get_attachment/3Stocker et lire un blob par nom.
list_attachments/2, delete_attachment/3, attachment_info/3Lister, supprimer, inspecter.
open_attachment_writer/4 -> write_attachment/2 -> finish_attachment/1Diffuser un gros blob en entree (abort_attachment/1 pour annuler).
open_attachment_reader/3 -> read_attachment/1 -> close_attachment_reader/1Diffuser un blob en sortie.

Vecteurs et recherche

FonctionDescription
vector_add/4,5, vector_add_batch/2Attacher un vecteur (ou un lot) a des documents.
vector_get/2, vector_delete/2, vector_stats/1Lire, supprimer, et compter les vecteurs.
search_vector/3Recherche du plus proche voisin par vecteur (#{k => N}).
search_bm25/3Recherche par mot-cle (necessite un backend BM25 active a l’ouverture).
search_hybrid/3, search/3Hybride vecteur + mot-cle, et recherche texte quand un embedder est configure.

La recherche hybride et l’embedding automatique necessitent un embedder via barrel_embed ; sans lui ils renvoient {error, embedder_not_configured}. Voir Mode enregistrement.

Changements et abonnements

FonctionDescription
changes/2,3Lire le flux de changements depuis first ou un curseur.
hlc_encode/1, hlc_decode/1Transformer une position de flux en curseur URL-safe et inversement.
subscribe/2,3, subscribe_ack/2, subscribe_stop/1S’abonner aux changements avec contre-pression.
subscribe_query/2,3, unsubscribe_query/1Requetes en direct (BQL SUBSCRIBE).

Timeline

FonctionDescription
branch/2,3Creer une branche d’une base de donnees (a maintenant, ou a un instant passe).
merge/1,2Fusionner une branche a nouveau.

Voir Timeline.

Historique

FonctionDescription
history/1,2, history_floor/1Lire l’historique de changements retenu et son plancher.
doc_versions/2, version_body/3Lister les versions d’un document et lire un corps passe.

Voir Audit et provenance.