getDiscountsByVectorSearch
Pencarian semantik (vektor) untuk diskon.
Deskripsi
Metode ini melakukan pencarian semantik (vektor) untuk diskon dari kueri bahasa alami - mencocokkan berdasarkan makna daripada kata kunci yang tepat. Ini mengembalikan sebuah Promise yang menyelesaikan menjadi objek IDiscountsResponse - sebuah wadah dengan items (diskon) dan total.
Diskon.getDiscountsByVectorSearch(
body*,
langCode,
offset,
limit
);
Skema parameter
Skema
body(required): IDiscountsVectorSearch
Isi pencarian vektor
contoh:
{ queryText: "winter sale" }
body.queryText(required): string
Kueri pencarian dalam bahasa alami.
contoh: "diskon musim dingin"
body.vectorDistanceThreshold: number
Override ambang jarak kosinus (0..2).
contoh: 0.3
body.maxHits: number
Kandidat Top-K yang diambil sebelum paginasi. Default: 100. Maks: 500.
contoh: 10
body.debug: boolean
Ketika true, setiap item yang dikembalikan mendapatkan field 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 Discounts.getDiscountsByVectorSearch({ queryText: 'winter sale' });
Contoh dengan atribut
const response = await Discounts.getDiscountsByVectorSearch(
{
queryText: 'winter sale',
vectorDistanceThreshold: 0.3,
maxHits: 50,
debug: true,
},
'en_US',
0,
30,
);
Contoh respons
{
"items": [
{
"id": 1,
"type": "DISCOUNT",
"attributeSetId": 31,
"conditionLogic": "AND",
"discountValue": {
"value": 10,
"maxAmount": 5,
"discountType": "FIXED_AMOUNT",
"applicability": "TO_PRODUCT"
},
"exclusions": null,
"gifts": null,
"giftsReplaceCartItems": false,
"userGroups": null,
"userExclusions": null,
"localizeInfos": {
"title": "Example discount"
},
"version": 0,
"identifier": "example_discount",
"startDate": "2026-03-14T14:55:19.928Z",
"endDate": "2026-07-31T13:55:24.647Z",
"attributeValues": {
"example_discount": {
"type": "string",
"value": "test value",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
}
},
"conditions": [],
"bonusEvent": null,
"position": 1
}
],
"total": 1
}
Skema respons
Skema: IDiscountsResponse
items: IDiscountsEntity[]
Array entitas diskon.
items.id: number
Pengidentifikasi unik dari diskon.
items.attributeSetId: number | null
Pengidentifikasi dari set atribut yang terhubung dengan diskon, atau null ketika tidak ada set yang terhubung.
items.localizeInfos: ILocalizeInfo
Nama diskon.
items.version: number
Versi dari diskon.
items.identifier: string
Pengidentifikasi dari diskon.
items.type: IDiscountType
Tipe dari diskon.
items.startDate: string
Tanggal mulai diskon.
items.endDate: string
Tanggal akhir diskon.
items.discountValue: IDiscountValue
Nilai diskon, termasuk tipe dan batas jumlahnya.
items.conditionLogic: string
Logika dari diskon. Nilai yang mungkin adalah "AND" | "OR".
items.conditions: IDiscountCondition[]
Kondisi dari diskon.
items.exclusions: Record<string, unknown> | null
Pengecualian dari diskon.
items.gifts: Record<string, unknown> | null
Hadiah dari diskon.
items.giftsReplaceCartItems: boolean
Apakah hadiah menggantikan item keranjang.
items.userGroups: Record<string, unknown> | null
Grup pengguna dari diskon.
items.userExclusions: Record<string, unknown> | null
Pengecualian pengguna dari diskon.
items.attributeValues: IAttributeValues
Nilai atribut dari diskon.
items.attributeSetIdentifier: string
Pengidentifikasi dari set atribut.
items.bonusEvent: Record<string, unknown>
Konfigurasi acara bonus.
items.position: number
Nomor posisi untuk pengurutan.
contoh: 1
items.total: number | string
Total jumlah entri terkait.
contoh: "1"
items.distance: number
Jarak kosinus ke kueri. Hanya dikembalikan oleh endpoint pencarian semantik (vektor) ketika debug: true diteruskan dalam isi pencarian.
contoh: 0.12
total: number
Total jumlah diskon.
ℹ️ Pencarian semantik mencocokkan berdasarkan makna, bukan pada teks literal. Untuk pencocokan kata kunci di seluruh jenis entitas sekaligus gunakan globalSearch().