@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
JavaScript
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,
};
}