Fonctions de Recherche Fulltext et Vectorielle
Disponible à partir de la version 11.48.0
Ces fonctions nécessitent que la licence/préférence OPENSEARCH_ENABLED soit activée pour votre organisation. Sans activation, toutes les fonctions lèvent une RuntimeError("Fulltext search license is missing").
Fonctions pour rechercher dans les archives de documents, trouver des documents similaires et interroger les données de référence ERP. Elles recherchent dans tous les documents de l'organisation — contrairement à get_document_content() qui ne lit que le texte du document actuel.
Security: The org_id is automatically injected by the script sandbox. You never need to pass it — your scripts always operate within your own organization's data.
Source : module/script/helper/document_script_functions.py
fulltext_search()
Recherche dans le texte OCR complet de tous les documents de l'organisation.
fulltext_search(query, **kwargs)Paramètres :
query
str
obligatoire
Terme de recherche (recherché dans le texte OCR de tous les documents)
search_type
str
"match_phrase"
"match_phrase" (phrase exacte), "fuzzy" (tolérant aux erreurs, jusqu'à 2 caractères de différence), "prefix" (commence par)
doc_type
str
None
Filtrer par type de document (séparé par des virgules, ex. "INVOICE,CREDIT_NOTE")
status
str
None
Filtrer par statut de document (séparé par des virgules, ex. "ready_for_validation,exported")
vendor_name
str
None
Filtrer par nom du fournisseur
date_range
str
None
"last_30_days", "last_90_days", "last_180_days", "last_365_days"
size
int
10
Nb. max de résultats (limité à 50)
Retourne : list[dict] — Chaque dict contient :
doc_id
UUID du document
name
Nom du fichier (ex. "INV-2026-001.pdf")
doc_type
Type de document ("INVOICE", "ORDER_CONFIRMATION", etc.)
vendor_name
Nom du fournisseur
status
Statut du document
total_amount
Montant total
ocr_content
Extrait de texte correspondant du document
highlights
Dict avec les correspondances surlignées par champ
Exemple — Recherche de phrase exacte :
Exemple — Recherche floue (tolérante aux erreurs OCR) :
Exemple — Recherche par préfixe :
Requête vide : Passer une chaîne vide retourne [] immédiatement sans effectuer d'appel HTTP.
Gestion des erreurs : Si le service fulltextsearch est inaccessible, la fonction retourne [] et enregistre un avertissement. Elle ne lève pas d'exception.
vector_search()
Trouve des documents sémantiquement similaires à l'aide d'embeddings vectoriels (recherche k-NN avec des vecteurs à 384 dimensions).
Paramètres :
doc_id
str
obligatoire
UUID du document source
k
int
5
Nombre de documents similaires à retourner (limité à 50)
Retourne : list[dict] — Chaque dict contient : doc_id, name, doc_type, similarity_score (0-1), similarity_percent (0-100).
Exemple :
Fonctionnement : Chaque document est converti en vecteur à 384 dimensions lors de l'indexation. La recherche vectorielle trouve les voisins les plus proches dans cet espace vectoriel.
fulltext_search_erp()
Recherche dans les données de référence ERP (fournisseurs, commandes d'achat, clients, matériaux) indexées dans OpenSearch.
Paramètres :
query
str
obligatoire
Terme de recherche
entity_types
str
None
Filtrer par type d'entité (séparé par des virgules : "vendor", "purchase_order", "customer", "material")
vendor_number
str
None
Filtrer par numéro de fournisseur
vendor_name
str
None
Filtrer par nom du fournisseur
company_code
str
None
Filtrer par code société
size
int
10
Nb. max de résultats (limité à 50)
Exemple — Valider un fournisseur dans l'ERP :
fulltext_suggestions()
Retourne des suggestions d'autocomplétion pour les termes de recherche.
Paramètres :
query
str
obligatoire
Préfixe / terme de recherche
limit
int
10
Nb. max de suggestions par catégorie (limité à 20)
Exemple :
Référence Rapide
fulltext_search(query, ...)
Rechercher le texte OCR dans tous les documents
list[dict]
vector_search(doc_id, ...)
Trouver des documents sémantiquement similaires
list[dict]
fulltext_search_erp(query, ...)
Rechercher dans les données ERP
list[dict]
fulltext_suggestions(query, ...)
Suggestions d'autocomplétion
dict
Schémas Courants
Vérification de Licence
Combinaison avec les Fonctions de Champ
Last updated
Was this helpful?