Skip to content

Commit 31303ef

Browse files
committed
Add functions to define resultType and to set personalizationEvents
1 parent 2fb03c9 commit 31303ef

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,23 @@ client.setJWT(token);
8787
client.setUserToken('uuid');
8888
```
8989

90+
#### Send personalization events with search query
91+
In personalized search, user events are typically sent to AddSearch via API and a user token
92+
is passed with the search query (see setUserToken function).
93+
An alternative way is to send user events needed for personalization with the search query.
94+
95+
```js
96+
// Events depend on the personalization strategy
97+
// Contact AddSearch for more information
98+
var events = [
99+
{favorite_genre: 'rock'},
100+
{favorite_band: 'Red Hot Chili Peppers'},
101+
{least_favorite_genre: 'country'}
102+
];
103+
104+
client.setPersonalizationEvents(events);
105+
```
106+
90107
#### Define language filter
91108
```js
92109
// Documents in specific language (e.g. "en" or "de")
@@ -143,6 +160,13 @@ client.nextPage();
143160
client.previousPage();
144161
```
145162

163+
#### Set result type
164+
```js
165+
// By default, fetch all search results
166+
// If "organic", Pinned results and Promotions are left out
167+
client.setResultType('organic');
168+
```
169+
146170
#### Facets
147171
```js
148172
// Declare fields for faceting. Number of hits found from

src/apifetch.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ var executeApiFetch = function(sitekey, type, settings, cb) {
5454
settingToQueryParam(settings.paging.sortBy, 'sort') +
5555
settingToQueryParam(settings.paging.sortOrder, 'order') +
5656
settingToQueryParam(settings.jwt, 'jwt') +
57+
settingToQueryParam(settings.resultType, 'resultType') +
5758
settingToQueryParam(settings.userToken, 'userToken');
5859

5960
// Add custom field filters
@@ -65,10 +66,20 @@ var executeApiFetch = function(sitekey, type, settings, cb) {
6566

6667
// Add facet fields
6768
if (settings.facetFields) {
68-
for (var i = 0; i < settings.facetFields.length; i++) {
69+
for (var i = 0; i<settings.facetFields.length; i++) {
6970
qs = qs + '&facet=' + settings.facetFields[i];
7071
}
7172
}
73+
74+
// Personalization events
75+
if (settings.personalizationEvents && Array.isArray(settings.personalizationEvents)) {
76+
for (var i = 0; i<settings.personalizationEvents.length; i++) {
77+
var obj = settings.personalizationEvents[i];
78+
var key = Object.keys(obj);
79+
qs = qs + '&personalizationEvent=' + encodeURIComponent(key + '=' + obj[key]);
80+
}
81+
}
82+
7283
}
7384
}
7485

src/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ var client = function(sitekey) {
7979
this.previousPage = function() { this.settings.previousPage(); }
8080
this.setSuggestionsSize = function(size) { this.settings.setSuggestionsSize(size); }
8181
this.addFacetField = function(fieldName) { this.settings.addFacetField(fieldName); }
82+
this.setResultType = function(type) { this.settings.setResultType(type); }
83+
this.setPersonalizationEvents = function(events) { this.settings.setPersonalizationEvents(events); }
8284
//this.hitClicked = function(docid, position) { sendClickHit(this.sitekey, this.settings.getSettings().keyword, docid, position); }
8385
}
8486

src/settings.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,14 @@ var settings = function() {
101101
this.settings.userToken = token;
102102
}
103103

104+
this.setPersonalizationEvents = function(events) {
105+
this.settings.personalizationEvents = events;
106+
}
107+
108+
this.setResultType = function(type) {
109+
this.settings.resultType = type;
110+
}
111+
104112
this.addFacetField = function(field) {
105113
this.settings.facetFields.push(field);
106114
}

0 commit comments

Comments
 (0)