Context

In Sitecore Search, you can get personalized search results that depend on both the page being viewed and the visitor. You can send these values in a Context object.

Important

The JS SDK is built on top of the JS Data package. The context object and its methods available in the JS Data package are also available in the JS SDK.

For documentation on the Context object, refer to Search JS Data package.

Name

Type

Description

geo

ContextGeo

Contains information about the visitor's geo location.

ids

Array<string>

List of ids.

locale

ContextLocale

Contains information about the country and language the page is being viewed in.

page

ContextPage

Contains information about the page where the request was made.

time

ContextTime

Contains information about time of request.

user

ContextUser

Contains information about the visitor. Required for personalization and accurate analytics.

utm_campaign

Object

Contains UTM campaign parameters.

Note

Unless indicated otherwise, all values are optional.

The following code block lists the various methods related to context and accessible through the Request object. After the installation of the JS Data package into your project, these methods and their documentation are available in your IDE.

RequestResponse
/** context */
getContext(): Context;
setContext(value: Context): ISearchRequest;
resetContext(): ISearchRequest;
updateContext(value: Context): ISearchRequest;

/** context.geo */
getContextGeo(): ContextGeo;
setContextGeo(value: ContextGeo): ISearchRequest;
resetContextGeo(): ISearchRequest;
updateContextGeo(value: ContextGeo): ISearchRequest;

/** context.geo.ip */
getContextGeoIp(): string;
setContextGeoIp(value: string): ISearchRequest;
resetContextGeoIp(): ISearchRequest;

/** context.geo.location */
getContextGeoLocation(): ContextGeoLocation;
setContextGeoLocation(value: ContextGeoLocation): ISearchRequest;
resetContextGeoLocation(): ISearchRequest;
updateContextGeoLocation(value: ContextGeoLocation): ISearchRequest;

/** context.geo.location.lat */
getContextGeoLocationLat(): number;
setContextGeoLocationLat(value: number): ISearchRequest;
resetContextGeoLocationLat(): ISearchRequest;

/** context.geo.location.lon */
getContextGeoLocationLon(): number;
setContextGeoLocationLon(value: number): ISearchRequest;
resetContextGeoLocationLon(): ISearchRequest;

/** context.ids */
getContextIds(): MapModel<ContextEntityIds>;
setContextIds(value: MapModel<ContextEntityIds>): ISearchRequest;
resetContextIds(): ISearchRequest;

/** context.ids.__constructor__ */
getContextEntityIds(entity: Entity): Array<EntityId>;
setContextEntityIds(entity: Entity, value: Array<EntityId>): ISearchRequest;
resetContextEntityIds(entity: Entity): ISearchRequest;
addContextEntityId(entity: Entity, value: EntityId): ISearchRequest;
removeContextEntityId(entity: Entity, value: EntityId, filter?: (v: any) => boolean): ISearchRequest;

/** context.locale */
getContextLocale(): ContextLocale;
setContextLocale(value: ContextLocale): ISearchRequest;
resetContextLocale(): ISearchRequest;
updateContextLocale(value: ContextLocale): ISearchRequest;

/** context.locale.country */
getContextLocaleCountry(): string;
setContextLocaleCountry(value: string): ISearchRequest;
resetContextLocaleCountry(): ISearchRequest;

/** context.locale.language */
getContextLocaleLanguage(): string;
setContextLocaleLanguage(value: string): ISearchRequest;
resetContextLocaleLanguage(): ISearchRequest;

/** context.page */
getContextPage(): ContextPage;
setContextPage(value: ContextPage): ISearchRequest;
resetContextPage(): ISearchRequest;
updateContextPage(value: ContextPage): ISearchRequest;

/** context.page.custom */
getContextPageCustom(): ContextPageCustom;
setContextPageCustom(value: ContextPageCustom): ISearchRequest;
resetContextPageCustom(): ISearchRequest;

/** context.page.uri */
getContextPageUri(): string;
setContextPageUri(value: string): ISearchRequest;
resetContextPageUri(): ISearchRequest;

/** context.time */
getContextTime(): ContextTime;
setContextTime(value: ContextTime): ISearchRequest;
resetContextTime(): ISearchRequest;
updateContextTime(value: ContextTime): ISearchRequest;

/** context.time.epoch */
getContextTimeEpoch(): number;
setContextTimeEpoch(value: number): ISearchRequest;
resetContextTimeEpoch(): ISearchRequest;

/** context.user */
getContextUser(): ContextUser;
setContextUser(value: ContextUser): ISearchRequest;
resetContextUser(): ISearchRequest;
updateContextUser(value: ContextUser): ISearchRequest;

/** context.user.uuid */
getContextUserUuid(): string;
setContextUserUuid(value: string): ISearchRequest;
resetContextUserUuid(): ISearchRequest;

/** context.utm_source */
context.setUtmSource('utm source');

/** context.utm_medium */
context.setUtmMedium('utm medium');

/** context.utm_campaign */
context.setUtmCampaign('utm campaign');

/** context.utm_term */
context.setUtmTerm('utm term');

/** context.utm_content */
context.setUtmContent('utm content');

Do you have some feedback for us?

If you have suggestions for improving this article,