انتقل إلى المحتوى الرئيسي

getFormsDataByVectorSearch

بحث دلالي (متجه) لبيانات النماذج.

الوصف

تقوم هذه الطريقة بإجراء بحث دلالي (متجه) لبيانات النماذج من استعلام بلغة طبيعية - حيث تتطابق على المعنى بدلاً من الكلمات الرئيسية الدقيقة. تعيد Promise التي تحل إلى كائن IFormsDataSearchResponse - حاوية تحتوي على items و total.

تعود السجلات كـ IFormDataSearchEntity، والتي - على عكس IFormDataEntity التي يتم إرجاعها بواسطة getFormsDataByMarker() - تحمل أيضًا حقول الاعتدال والمرسل من السجل الخام (status, ip, fingerprint, isUserAdmin, userIdentifier, entityIdentifier, parentId).

FormData.getFormsDataByVectorSearch(

body*, langCode, offset, limit

);

مخطط المعاملات

المخطط

body(required): IFormsDataVectorSearch
نص جسم البحث المتجه
مثال:

{ queryText: "order confirmation" }

body.queryText(required): string
استعلام البحث بلغة طبيعية.
مثال: "تأكيد الطلب"

body.vectorDistanceThreshold: number
تجاوز عتبة المسافة الكوسينية (0..2).
مثال: 0.3

body.maxHits: number
أعلى K من المرشحين الذين تم جلبهم قبل التصفح. الافتراضي: 100. الحد الأقصى: 500.
مثال: 10

body.debug: boolean
عند التفعيل، يحصل كل عنصر تم إرجاعه على حقل distance.
مثال: false

langCode: string
رمز اللغة. الافتراضي: "en_US"
مثال: "en_US"

offset: number
معامل للتصفح. الافتراضي: 0
مثال: 0

limit: number
معامل للتصفح. الافتراضي: 30
مثال: 30

أمثلة

مثال بسيط

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

مثال مع السمات

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

مثال على الاستجابة

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

مخطط الاستجابة

المخطط: IFormsDataSearchResponse

items: IFormDataSearchEntity[]
مصفوفة من سجلات بيانات النماذج التي تم العثور عليها.

items.id: number
المعرف الفريد لسجل بيانات النموذج.
مثال: 12345

items.formIdentifier: string
المعرف النصي للنموذج.
مثال: "contact_form"

items.time: Date | string
تاريخ ووقت آخر تغيير لبيانات النموذج.
مثال: "2023-02-12 10:56"

items.formData: FormDataType[]
البيانات المقدمة بواسطة النموذج.
مثال:

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

items.userIdentifier: string | null
المعرف النصي للمستخدم الذي قدم النموذج، أو null لتقديم مجهول.
مثال: null

items.entityIdentifier: string
المعرف النصي للكيان الذي ينتمي إليه السجل.
مثال: "blog"

items.parentId: number | null
معرف سجل بيانات النموذج الأب، أو null لسجل على المستوى الأعلى.
مثال: null

items.ip: string
عنوان IP الذي تم تقديم النموذج منه.
مثال: "127.0.0.1"

items.fingerprint: string
بصمة الجهاز للمرسل.
مثال: "UQ_123456_abcdef"

items.isUserAdmin: boolean
ما إذا كان السجل قد تم تقديمه بواسطة مسؤول.
مثال: false

items.status: FormDataStatus
حالة الاعتدال للسجل.
مثال: "sent"

items.formModuleId: number
معرف وحدة النموذج التي ينتمي إليها السجل.
مثال: 2

items.distance: number
المسافة الكوسينية إلى الاستعلام. يتم إرجاعها فقط عند تمرير debug: true في جسم البحث.
مثال: 0.12

total: number
إجمالي عدد السجلات التي تم العثور عليها.
مثال: 100

ℹ️ يتطابق البحث الدلالي على المعنى، وليس على النص الحرفي. لاستخدام مطابقة الكلمات الرئيسية عبر كل نوع كيان مرة واحدة، استخدم globalSearch().