Skip to content

Commit 3215e11

Browse files
committed
Add functions to define the number of facets and to set a filter object
1 parent 7806787 commit 3215e11

File tree

4 files changed

+22
-1
lines changed

4 files changed

+22
-1
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,11 @@ client.setResultType('organic');
174174
client.addFacetField('category');
175175
client.addFacetField('custom_fields.genre');
176176
```
177+
By default, 10 facets with most hits are returned per field.
178+
Use the following function to get more or less facets.
179+
```js
180+
client.setNumberOfFacets(20);
181+
```
177182

178183
## Supported web browsers and node.js versions
179184
The client is tested on

src/apifetch.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ var executeApiFetch = function(sitekey, type, settings, cb) {
5555
settingToQueryParam(settings.paging.sortOrder, 'order') +
5656
settingToQueryParam(settings.jwt, 'jwt') +
5757
settingToQueryParam(settings.resultType, 'resultType') +
58-
settingToQueryParam(settings.userToken, 'userToken');
58+
settingToQueryParam(settings.userToken, 'userToken') +
59+
settingToQueryParam(settings.numFacets, 'numFacets');
5960

6061
// Add custom field filters
6162
if (settings.customFieldFilters) {
@@ -80,6 +81,11 @@ var executeApiFetch = function(sitekey, type, settings, cb) {
8081
}
8182
}
8283

84+
// Filter object
85+
if (settings.filterObject) {
86+
qs = qs + '&filter=' + JSON.stringify(settings.filterObject);
87+
}
88+
8389
}
8490
}
8591

src/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,10 @@ 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.setNumberOfFacets = function(numFacets) { this.settings.setNumberOfFacets(numFacets); }
8283
this.setResultType = function(type) { this.settings.setResultType(type); }
8384
this.setPersonalizationEvents = function(events) { this.settings.setPersonalizationEvents(events); }
85+
this.setFilterObject = function(filter) { this.settings.setFilterObject(filter); }
8486
//this.hitClicked = function(docid, position) { sendClickHit(this.sitekey, this.settings.getSettings().keyword, docid, position); }
8587
}
8688

src/settings.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ var settings = function() {
5252
this.settings.categories = categories;
5353
}
5454

55+
this.setFilterObject = function(filter) {
56+
this.settings.filterObject= filter;
57+
}
58+
5559
this.setPriceRangeFilter = function(minCents, maxCents) {
5660
this.settings.priceFromCents = minCents;
5761
this.settings.priceToCents = maxCents;
@@ -113,6 +117,10 @@ var settings = function() {
113117
this.settings.facetFields.push(field);
114118
}
115119

120+
this.setNumberOfFacets = function(numFacets) {
121+
this.settings.numFacets = numFacets;
122+
}
123+
116124
this.setPaging = function(page, pageSize, sortBy, sortOrder) {
117125
// Validate
118126
if (page < 1) {

0 commit comments

Comments
 (0)