Aller au contenu principal

getFormsDataByVectorSearch

Recherche sémantique (vectorielle) pour les données de formulaire.

Description

Cette méthode effectue une recherche sémantique (vectorielle) pour les données de formulaire à partir d'une requête en langage naturel - elle correspond au sens plutôt qu'aux mots-clés exacts. Elle renvoie une promesse qui se résout en un objet IFormsDataSearchResponse - un conteneur avec items et total.

Les enregistrements sont renvoyés sous forme de IFormDataSearchEntity, qui - contrairement à l'IFormDataEntity renvoyé par getFormsDataByMarker() - contient également les champs de modération et d'expéditeur de l'enregistrement brut (status, ip, fingerprint, isUserAdmin, userIdentifier, entityIdentifier, parentId).

FormData.getFormsDataByVectorSearch(

body*, langCode, offset, limit

);

Schéma des paramètres

Schéma

body(obligatoire): IFormsDataVectorSearch
Corps de la recherche vectorielle
exemple:

{ queryText: "order confirmation" }

body.queryText(obligatoire): string
Requête de recherche en langage naturel.
exemple: "confirmation de commande"

body.vectorDistanceThreshold: number
Remplacement du seuil de distance cosinus (0..2).
exemple: 0.3

body.maxHits: number
Top-K candidats récupérés avant la pagination. Par défaut : 100. Max : 500.
exemple: 10

body.debug: boolean
Lorsque vrai, chaque élément renvoyé obtient un champ distance.
exemple: false

langCode: string
Code de langue. Par défaut : "en_US"
exemple: "en_US"

offset: number
Paramètre pour la pagination. Par défaut : 0
exemple: 0

limit: number
Paramètre pour la pagination. Par défaut : 30
exemple: 30

Exemples

Exemple minimal

const response = await FormData.getFormsDataByVectorSearch({ queryText: 'order confirmation' });

Exemple avec des attributs

const response = await FormData.getFormsDataByVectorSearch(
{
queryText: 'order confirmation',
vectorDistanceThreshold: 0.3,
maxHits: 50,
debug: true,
},
'en_US',
0,
30,
);

Exemple de réponse

{
"items": [
{
"id": 8426,
"formIdentifier": "test-form",
"time": "2026-08-23T20:20:37.568Z",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
],
"userIdentifier": "test@test.ru",
"entityIdentifier": "blog",
"parentId": null,
"ip": "31.31.109.247",
"fingerprint": "UQ_1ca96f07-cb2f-403f-850a-4c3b76c022ce",
"isUserAdmin": false,
"status": "sent",
"formModuleId": 2
},
{
"id": 8409,
"formIdentifier": "test-form",
"time": "2026-08-23T17:47:58.472Z",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
],
"userIdentifier": null,
"entityIdentifier": "blog",
"parentId": null,
"ip": "31.31.109.247",
"fingerprint": "UQ_3c2e0387-2ceb-4b76-a64f-cb6ba0e655b2",
"isUserAdmin": false,
"status": "sent",
"formModuleId": 2
},
{
"id": 8392,
"formIdentifier": "test-form",
"time": "2026-08-23T14:37:47.250Z",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
],
"userIdentifier": null,
"entityIdentifier": "blog",
"parentId": null,
"ip": "31.31.109.247",
"fingerprint": "UQ_125c6a79-1f43-4d42-89b0-3872fedfc9ed",
"isUserAdmin": false,
"status": "sent",
"formModuleId": 2
},
"..."
],
"total": 100
}

Schéma de réponse

Schéma : IFormsDataSearchResponse

items: IFormDataSearchEntity[]
Tableau des enregistrements de données de formulaire trouvés.

items.id: number
L'identifiant unique de l'enregistrement de données de formulaire.
exemple: 12345

items.formIdentifier: string
Identifiant textuel du formulaire.
exemple: "contact_form"

items.time: Date | string
Date et heure de la dernière modification des données du formulaire.
exemple: "2023-02-12 10:56"

items.formData: FormDataType[]
Données soumises par le formulaire.
exemple:

[
{
"marker": "name",
"type": "string",
"value": "Test"
}
]

items.userIdentifier: string | null
Identifiant textuel de l'utilisateur qui a soumis le formulaire, ou null pour une soumission anonyme.
exemple: null

items.entityIdentifier: string
Identifiant textuel de l'entité à laquelle appartient l'enregistrement.
exemple: "blog"

items.parentId: number | null
Identifiant de l'enregistrement de données de formulaire parent, ou null pour un enregistrement de niveau supérieur.
exemple: null

items.ip: string
Adresse IP à partir de laquelle le formulaire a été soumis.
exemple: "127.0.0.1"

items.fingerprint: string
Empreinte de l'appareil de l'expéditeur.
exemple: "UQ_123456_abcdef"

items.isUserAdmin: boolean
Indique si l'enregistrement a été soumis par un administrateur.
exemple: false

items.status: FormDataStatus
Statut de modération de l'enregistrement.
exemple: "envoyé"

items.formModuleId: number
Identifiant du module de formulaire auquel appartient l'enregistrement.
exemple: 2

items.distance: number
Distance cosinus par rapport à la requête. Renvoie uniquement lorsque debug: true est passé dans le corps de la recherche.
exemple: 0.12

total: number
Nombre total d'enregistrements trouvés.
exemple: 100

ℹ️ La recherche sémantique correspond au sens, et non au texte littéral. Pour une correspondance de mots-clés à travers chaque type d'entité à la fois, utilisez globalSearch().