getDiscountsByVectorSearch
Búsqueda semántica (vectorial) de descuentos.
Descripción
Este método realiza una búsqueda semántica (vectorial) de descuentos a partir de una consulta en lenguaje natural: coincide en significado en lugar de palabras clave exactas. Devuelve una Promesa que se resuelve en un objeto IDiscountsResponse: un contenedor con items (los descuentos) y total.
.getDiscountsByVectorSearch(
,
,
,
);
Esquema de parámetros
Esquema
body(required): IDiscountsVectorSearch
Cuerpo de búsqueda vectorial
ejemplo:
{ queryText: "winter sale" }
body.queryText(required): string
Consulta de búsqueda en lenguaje natural.
ejemplo: "venta de invierno"
body.vectorDistanceThreshold: number
Anulación del umbral de distancia coseno (0..2).
ejemplo: 0.3
body.maxHits: number
Candidatos Top-K obtenidos antes de la paginación. Predeterminado: 100. Máx: 500.
ejemplo: 10
body.debug: boolean
Cuando es verdadero, cada elemento devuelto obtiene un campo distance.
ejemplo: false
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
offset: number
Parámetro para paginación. Predeterminado: 0
ejemplo: 0
limit: number
Parámetro para paginación. Predeterminado: 30
ejemplo: 30
Ejemplos
Ejemplo mínimo
const response = await Discounts.getDiscountsByVectorSearch({ queryText: 'winter sale' });
Ejemplo con atributos
const response = await Discounts.getDiscountsByVectorSearch(
{
queryText: 'winter sale',
vectorDistanceThreshold: 0.3,
maxHits: 50,
debug: true,
},
'en_US',
0,
30,
);
Ejemplo de respuesta
{
"items": [],
"total": 0,
"indexReady": false
}
Esquema de respuesta
Esquema: IDiscountsResponse
items: IDiscountsEntity[]
Array de entidades de descuento.
items.id: number
El identificador único del descuento.
items.attributeSetId: number | null
El identificador del conjunto de atributos vinculado al descuento, o null cuando no hay conjunto vinculado.
items.localizeInfos: ILocalizeInfo
El nombre del descuento.
items.version: number
La versión del descuento.
items.identifier: string
El identificador del descuento.
items.type: IDiscountType
El tipo de descuento.
items.startDate: string
La fecha de inicio del descuento.
items.endDate: string
La fecha de finalización del descuento.
items.discountValue: IDiscountValue
El valor del descuento, incluyendo su tipo y límites de cantidad.
items.conditionLogic: string
La lógica del descuento. Los valores posibles son "AND" | "OR".
items.conditions: IDiscountCondition[]
Las condiciones del descuento.
items.exclusions: Record<string, unknown> | null
Las exclusiones del descuento.
items.gifts: Record<string, unknown> | null
Los regalos del descuento.
items.giftsReplaceCartItems: boolean
Si los regalos reemplazan los artículos del carrito.
items.userGroups: Record<string, unknown> | null
Los grupos de usuarios del descuento.
items.userExclusions: Record<string, unknown> | null
Las exclusiones de usuarios del descuento.
items.attributeValues: IAttributeValues
Los valores de atributos del descuento.
items.attributeSetIdentifier: string
El identificador del conjunto de atributos.
items.bonusEvent: Record<string, unknown>
Configuración del evento de bonificación.
items.position: number
Número de posición para ordenación.
ejemplo: 1
items.total: number | string
Total de entradas relacionadas.
ejemplo: "1"
items.distance: number
Distancia coseno a la consulta. Devuelto solo por el punto final de búsqueda semántica (vectorial) cuando se pasa debug: true en el cuerpo de búsqueda.
ejemplo: 0.12
total: number
Número total de descuentos.
ℹ️ La búsqueda semántica coincide en significado, no en el texto literal. Para coincidencias de palabras clave en todos los tipos de entidades a la vez, utiliza globalSearch().