Lewati ke konten utama

getFormsDataByVectorSearch

Pencarian semantik (vektor) untuk data formulir.

Deskripsi

Metode ini melakukan pencarian semantik (vektor) untuk data formulir dari kueri bahasa alami - mencocokkan berdasarkan makna daripada kata kunci yang tepat. Ini mengembalikan sebuah Promise yang menyelesaikan menjadi objek IFormsDataSearchResponse - sebuah wadah dengan items dan total.

Rekaman kembali sebagai IFormDataSearchEntity, yang - tidak seperti IFormDataEntity yang dikembalikan oleh getFormsDataByMarker() - juga membawa bidang moderasi dan pengirim dari rekaman mentah (status, ip, fingerprint, isUserAdmin, userIdentifier, entityIdentifier, parentId).

FormData.getFormsDataByVectorSearch(

body*, langCode, offset, limit

);

Skema parameter

Skema

body(required): IFormsDataVectorSearch
Badan pencarian vektor
contoh:

{ queryText: "order confirmation" }

body.queryText(required): string
Kueri pencarian dalam bahasa alami.
contoh: "konfirmasi pesanan"

body.vectorDistanceThreshold: number
Override ambang jarak kosinus (0..2).
contoh: 0.3

body.maxHits: number
Top-K kandidat yang diambil sebelum paginasi. Default: 100. Max: 500.
contoh: 10

body.debug: boolean
Ketika true, setiap item yang dikembalikan mendapatkan bidang distance.
contoh: false

langCode: string
Kode bahasa. Default: "en_US"
contoh: "en_US"

offset: number
Parameter untuk paginasi. Default: 0
contoh: 0

limit: number
Parameter untuk paginasi. Default: 30
contoh: 30

Contoh

Contoh minimal

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

Contoh dengan atribut

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

Contoh respons

{
"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
}

Skema respons

Skema: IFormsDataSearchResponse

items: IFormDataSearchEntity[]
Array dari rekaman data formulir yang ditemukan.

items.id: number
Pengidentifikasi unik dari rekaman data formulir.
contoh: 12345

items.formIdentifier: string
Pengidentifikasi teks dari formulir.
contoh: "contact_form"

items.time: Date | string
Tanggal dan waktu terakhir data formulir diubah.
contoh: "2023-02-12 10:56"

items.formData: FormDataType[]
Data yang diajukan oleh formulir.
contoh:

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

items.userIdentifier: string | null
Pengidentifikasi teks dari pengguna yang mengajukan formulir, atau null untuk pengajuan anonim.
contoh: null

items.entityIdentifier: string
Pengidentifikasi teks dari entitas yang dimiliki rekaman tersebut.
contoh: "blog"

items.parentId: number | null
Pengidentifikasi dari rekaman data formulir induk, atau null untuk rekaman tingkat atas.
contoh: null

items.ip: string
Alamat IP dari mana formulir diajukan.
contoh: "127.0.0.1"

items.fingerprint: string
Sidik jari perangkat dari pengirim.
contoh: "UQ_123456_abcdef"

items.isUserAdmin: boolean
Apakah rekaman tersebut diajukan oleh admin.
contoh: false

items.status: FormDataStatus
Status moderasi dari rekaman.
contoh: "sent"

items.formModuleId: number
Pengidentifikasi dari modul formulir yang dimiliki rekaman tersebut.
contoh: 2

items.distance: number
Jarak kosinus ke kueri. Hanya dikembalikan ketika debug: true diteruskan dalam badan pencarian.
contoh: 0.12

total: number
Jumlah total rekaman yang ditemukan.
contoh: 100

ℹ️ Pencarian semantik mencocokkan pada makna, bukan pada teks literal. Untuk pencocokan kata kunci di seluruh jenis entitas sekaligus gunakan globalSearch().