UNPKG

@klevu/core

Version:

Typescript SDK that simplifies development on Klevu backend. Klevu provides advanced AI-powered search and discovery solutions for online retailers.

47 lines (46 loc) 1.46 kB
import { KlevuSearchPreference } from "../../models/KlevuSearchPreference.js"; import { KlevuTypeOfRecord } from "../../models/KlevuTypeOfRecord.js"; import { KlevuTypeOfRequest } from "../../models/KlevuTypeOfRequest.js"; const defaultOptions = { limit: 5, }; /** * Visually similar recommendation query * * @category RecommendationQuery * @param options * @param modifiers * @returns */ export function visuallySimilar(itemGroupIds, options, ...modifiers) { const opts = Object.assign(Object.assign({}, defaultOptions), options); const query = { id: "visuallySimilar", typeOfRequest: KlevuTypeOfRequest.VisuallySimilar, settings: { limit: opts.limit, typeOfRecords: [KlevuTypeOfRecord.Product], context: { sourceObjects: [ { typeOfRecord: KlevuTypeOfRecord.Product, records: itemGroupIds.map((itemGroupId) => ({ itemGroupId })), }, ], }, excludeIds: itemGroupIds.map((itemGroupId) => ({ key: "itemGroupId", value: itemGroupId, })), searchPrefs: [KlevuSearchPreference.ignoreManualBoosting], query: { term: "*", }, }, }; return { klevuFunctionId: "recommendation", queries: [query], modifiers, }; }