algoliasearch
Advanced tools
Comparing version 2.1.1 to 2.2.0
/*! | ||
* algoliasearch 2.1.0 | ||
* algoliasearch 2.2.0 | ||
* https://github.com/algolia/algoliasearch-client-js | ||
@@ -7,3 +7,3 @@ * Copyright 2013 Algolia SAS; Licensed MIT | ||
var VERSION = "2.1.0"; | ||
var VERSION = "2.2.0"; | ||
@@ -429,3 +429,2 @@ var AlgoliaSearch = function(applicationID, apiKey, method, resolveDNS, hostsArray) { | ||
} | ||
console.log("Set property:" + propertyName); | ||
return this; | ||
@@ -440,4 +439,2 @@ }, | ||
if (typeof obj.value === "undefined") { | ||
console.log(self.typeAheadPropertyName); | ||
console.log(obj[self.typeAheadPropertyName]); | ||
if (self.typeAheadPropertyName != null && typeof obj[self.typeAheadPropertyName] !== "undefined") { | ||
@@ -478,2 +475,10 @@ obj.value = obj[self.typeAheadPropertyName]; | ||
}, | ||
clearIndex: function(callback) { | ||
var indexObj = this; | ||
this.as._jsonRequest({ | ||
method: "POST", | ||
url: "/1/indexes/" + encodeURIComponent(indexObj.indexName) + "/clear", | ||
callback: callback | ||
}); | ||
}, | ||
getSettings: function(callback) { | ||
@@ -480,0 +485,0 @@ var indexObj = this; |
/*! | ||
* algoliasearch 2.1.0 | ||
* algoliasearch 2.2.0 | ||
* https://github.com/algolia/algoliasearch-client-js | ||
@@ -7,2 +7,2 @@ * Copyright 2013 Algolia SAS; Licensed MIT | ||
var VERSION="2.1.0",AlgoliaSearch=function(a,b,c,d,e){this.applicationID=a,this.apiKey=b,this._isUndefined(e)&&(e=[a+"-1.algolia.io",a+"-2.algolia.io",a+"-3.algolia.io"]),this.hosts=[];for(var f=0;f<e.length;++f)Math.random()>.5&&this.hosts.reverse(),this._isUndefined(c)||null==c?this.hosts.push(("https:"==document.location.protocol?"https":"http")+"://"+e[f]):"https"===c||"HTTPS"===c?this.hosts.push("https://"+e[f]):this.hosts.push("http://"+e[f]);Math.random()>.5&&this.hosts.reverse(),(this._isUndefined(d)||d)&&this._jsonRequest({method:"GET",url:"/1/isalive"})};AlgoliaSearch.prototype={deleteIndex:function(a,b){this._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(a),callback:b})},moveIndex:function(a,b,c){var d={operation:"move",destination:b};this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(indexName)+"/operation",body:d,callback:c})},copyIndex:function(a,b,c){var d={operation:"copy",destination:b};this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(indexName)+"/operation",body:d,callback:c})},getLogs:function(a,b,c){this._isUndefined(b)&&(b=0),this._isUndefined(c)&&(c=10),this._jsonRequest({method:"GET",url:"/1/logs?offset="+b+"&length="+c,callback:a})},listIndexes:function(a){this._jsonRequest({method:"GET",url:"/1/indexes/",callback:a})},initIndex:function(a){return new this.Index(this,a)},listUserKeys:function(a){this._jsonRequest({method:"GET",url:"/1/keys",callback:a})},getUserKeyACL:function(a,b){this._jsonRequest({method:"GET",url:"/1/keys/"+a,callback:b})},deleteUserKey:function(a,b){this._jsonRequest({method:"DELETE",url:"/1/keys/"+a,callback:b})},addUserKey:function(a,b){var c={};c.acl=a,this._jsonRequest({method:"POST",url:"/1/keys",body:c,callback:b})},addUserKeyWithValidity:function(a,b,c){var d=this,e={};e.acl=a,this._jsonRequest({method:"POST",url:"/1/indexes/"+d.indexName+"/keys",body:e,callback:c})},startQueriesBatch:function(){this.batch=[]},addQueryInBatch:function(a,b,c){var d="query="+b;this._isUndefined(c)||null==c||(d=this._getSearchParams(c,d)),this.batch.push({indexName:a,params:d})},clearCache:function(){this.cache={}},sendQueriesBatch:function(a,b){for(var c=this,d={requests:[],apiKey:this.apiKey,appID:this.applicationID},e=0;e<c.batch.length;++e)d.requests.push(c.batch[e]);if(window.clearTimeout(c.onDelayTrigger),!this._isUndefined(b)&&null!=b&&b>0){var f=window.setTimeout(function(){c._sendQueriesBatch(d,a)},b);c.onDelayTrigger=f}else this._sendQueriesBatch(d,a)},Index:function(a,b){this.indexName=b,this.as=a,this.typeAheadArgs=null,this.typeAheadPropertyName=null},_sendQueriesBatch:function(a,b){this._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/*/queries",body:a,callback:b})},_jsonRequest:function(a){var b=this,c=a.callback,d=null,e=a.url;if(this._isUndefined(a.body)||(e=a.url+"_body_"+JSON.stringify(a.body)),!this._isUndefined(a.cache)&&(d=a.cache,!this._isUndefined(d[e])))return this._isUndefined(c)||c(!0,d[e]),void 0;var f=function(g){var h=0;return b._isUndefined(g)||(h=g),b.hosts.length<=h?(b._isUndefined(c)||c(!1,{message:"Cannot contact server"}),void 0):(a.callback=function(g,i,j,k){i||b._isUndefined(k)||console.log("Error: "+k.message),i&&!b._isUndefined(a.cache)&&(d[e]=k),!i&&g&&h+1<b.hosts.length?f(h+1):b._isUndefined(c)||c(i,k)},a.hostname=b.hosts[h],b._jsonRequestByHost(a),void 0)};f()},_jsonRequestByHost:function(a){var b=null,c=this;this._isUndefined(a.body)||(b=JSON.stringify(a.body));var d=a.hostname+a.url,e=null;e=new XMLHttpRequest,"withCredentials"in e?(e.open(a.method,d,!0),e.setRequestHeader("X-Algolia-API-Key",this.apiKey),e.setRequestHeader("X-Algolia-Application-Id",this.applicationID),null!=b&&e.setRequestHeader("Content-type","application/json")):"undefined"!=typeof XDomainRequest?(e=new XDomainRequest,e.open(a.method,d)):console.log("your browser is too old to support CORS requests"),e.send(b),e.onload=function(b){if(c._isUndefined(b))a.callback(!1,!0,b,JSON.parse(e.responseText));else{var d=0===b.target.status||503===b.target.status,f=200===b.target.status||201===b.target.status;a.callback(d,f,b.target,null!=b.target.response?JSON.parse(b.target.response):null)}},e.onerror=function(){a.callback(!0,!1,null,{message:"Could not connect to Host"})}},_getSearchParams:function(a,b){if(this._isUndefined(a)||null==a)return b;for(var c in a)null!=c&&a.hasOwnProperty(c)&&(b+=0===b.length?"?":"&",b+=c+"="+encodeURIComponent(a[c]));return b},_isUndefined:function(a){return void 0===a},applicationID:null,apiKey:null,hosts:[],cache:{}},AlgoliaSearch.prototype.Index.prototype={clearCache:function(){this.cache={}},addObject:function(a,b,c){var d=this;this.as._isUndefined(c)?this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(d.indexName),body:a,callback:b}):this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(d.indexName)+"/"+encodeURIComponent(c),body:a,callback:b})},addObjects:function(a,b){for(var c=this,d={requests:[]},e=0;e<a.length;++e){var f={action:"addObject",body:a[e]};d.requests.push(f)}this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/batch",body:d,callback:b})},getObject:function(a,b,c){var d=this,e="";if(!this.as._isUndefined(c)){e="?attributes=";for(var f=0;f<c.length;++f)0!==f&&(e+=","),e+=c[f]}this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(d.indexName)+"/"+encodeURIComponent(a)+e,callback:b})},partialUpdateObject:function(a,b){var c=this;this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/"+encodeURIComponent(a.objectID)+"/partial",body:a,callback:b})},saveObject:function(a,b){var c=this;this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/"+encodeURIComponent(a.objectID),body:a,callback:b})},saveObjects:function(a,b){for(var c=this,d={requests:[]},e=0;e<a.length;++e){var f={action:"updateObject",objectID:encodeURIComponent(a[e].objectID),body:a[e]};d.requests.push(f)}this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/batch",body:d,callback:b})},deleteObject:function(a,b){if(null==a||0===a.length)return b(!1,{message:"empty objectID"}),void 0;var c=this;this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/"+encodeURIComponent(a),callback:b})},search:function(a,b,c,d){var e=this,f="query="+encodeURIComponent(a);if(this.as._isUndefined(c)||null==c||(f=this.as._getSearchParams(c,f)),window.clearTimeout(e.onDelayTrigger),!this.as._isUndefined(d)&&null!=d&&d>0){var g=window.setTimeout(function(){e._search(f,b)},d);e.onDelayTrigger=g}else this._search(f,b)},getTypeaheadTransport:function(a,b){return this.typeAheadArgs=a,"undefined"!=typeof b&&(this.typeAheadPropertyName=b),console.log("Set property:"+b),this},get:function(a,b,c,d,e){return self=this,this.search(a,function(a,b){if(a){for(var f=0;f<b.hits.length;++f){var g=b.hits[f];if("undefined"==typeof g.value)if(console.log(self.typeAheadPropertyName),console.log(g[self.typeAheadPropertyName]),null!=self.typeAheadPropertyName&&"undefined"!=typeof g[self.typeAheadPropertyName])g.value=g[self.typeAheadPropertyName];else{var h=!1;for(var i in g)!h&&g.hasOwnProperty(i)&&"string"==typeof g[i]&&(g.value=g[i],h=!0)}e.push(c._transformDatum(g))}d&&d(e)}},self.typeAheadArgs),!0},waitTask:function(a,b){var c=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/task/"+a,callback:function(d,e){if(d&&"published"===e.status)b(!0,e);else{if(d&&e.pendingTask)return c.waitTask(a,b);b(!1,e)}}})},getSettings:function(a){var b=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(b.indexName)+"/settings",callback:a})},setSettings:function(a,b){var c=this;this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/settings",body:a,callback:b})},listUserKeys:function(a){var b=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(b.indexName)+"/keys",callback:a})},getUserKeyACL:function(a,b){var c=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/keys/"+a,callback:b})},deleteUserKey:function(a,b){var c=this;this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/keys/"+a,callback:b})},addUserKey:function(a,b){var c=this,d={};d.acl=a,this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/keys",body:d,callback:b})},addUserKeyWithValidity:function(a,b,c){var d=this,e={};e.acl=a,e.validity=b,this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(d.indexName)+"/keys",body:e,callback:c})},_search:function(a,b){this.as._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/query",body:{params:a,apiKey:this.as.apiKey,appID:this.as.applicationID},callback:b})},as:null,indexName:null,cache:{},typeAheadArgs:null,typeAheadPropertyName:null,emptyConstructor:function(){}}; | ||
var VERSION="2.2.0",AlgoliaSearch=function(a,b,c,d,e){this.applicationID=a,this.apiKey=b,this._isUndefined(e)&&(e=[a+"-1.algolia.io",a+"-2.algolia.io",a+"-3.algolia.io"]),this.hosts=[];for(var f=0;f<e.length;++f)Math.random()>.5&&this.hosts.reverse(),this._isUndefined(c)||null==c?this.hosts.push(("https:"==document.location.protocol?"https":"http")+"://"+e[f]):"https"===c||"HTTPS"===c?this.hosts.push("https://"+e[f]):this.hosts.push("http://"+e[f]);Math.random()>.5&&this.hosts.reverse(),(this._isUndefined(d)||d)&&this._jsonRequest({method:"GET",url:"/1/isalive"})};AlgoliaSearch.prototype={deleteIndex:function(a,b){this._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(a),callback:b})},moveIndex:function(a,b,c){var d={operation:"move",destination:b};this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(indexName)+"/operation",body:d,callback:c})},copyIndex:function(a,b,c){var d={operation:"copy",destination:b};this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(indexName)+"/operation",body:d,callback:c})},getLogs:function(a,b,c){this._isUndefined(b)&&(b=0),this._isUndefined(c)&&(c=10),this._jsonRequest({method:"GET",url:"/1/logs?offset="+b+"&length="+c,callback:a})},listIndexes:function(a){this._jsonRequest({method:"GET",url:"/1/indexes/",callback:a})},initIndex:function(a){return new this.Index(this,a)},listUserKeys:function(a){this._jsonRequest({method:"GET",url:"/1/keys",callback:a})},getUserKeyACL:function(a,b){this._jsonRequest({method:"GET",url:"/1/keys/"+a,callback:b})},deleteUserKey:function(a,b){this._jsonRequest({method:"DELETE",url:"/1/keys/"+a,callback:b})},addUserKey:function(a,b){var c={};c.acl=a,this._jsonRequest({method:"POST",url:"/1/keys",body:c,callback:b})},addUserKeyWithValidity:function(a,b,c){var d=this,e={};e.acl=a,this._jsonRequest({method:"POST",url:"/1/indexes/"+d.indexName+"/keys",body:e,callback:c})},startQueriesBatch:function(){this.batch=[]},addQueryInBatch:function(a,b,c){var d="query="+b;this._isUndefined(c)||null==c||(d=this._getSearchParams(c,d)),this.batch.push({indexName:a,params:d})},clearCache:function(){this.cache={}},sendQueriesBatch:function(a,b){for(var c=this,d={requests:[],apiKey:this.apiKey,appID:this.applicationID},e=0;e<c.batch.length;++e)d.requests.push(c.batch[e]);if(window.clearTimeout(c.onDelayTrigger),!this._isUndefined(b)&&null!=b&&b>0){var f=window.setTimeout(function(){c._sendQueriesBatch(d,a)},b);c.onDelayTrigger=f}else this._sendQueriesBatch(d,a)},Index:function(a,b){this.indexName=b,this.as=a,this.typeAheadArgs=null,this.typeAheadPropertyName=null},_sendQueriesBatch:function(a,b){this._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/*/queries",body:a,callback:b})},_jsonRequest:function(a){var b=this,c=a.callback,d=null,e=a.url;if(this._isUndefined(a.body)||(e=a.url+"_body_"+JSON.stringify(a.body)),!this._isUndefined(a.cache)&&(d=a.cache,!this._isUndefined(d[e])))return this._isUndefined(c)||c(!0,d[e]),void 0;var f=function(g){var h=0;return b._isUndefined(g)||(h=g),b.hosts.length<=h?(b._isUndefined(c)||c(!1,{message:"Cannot contact server"}),void 0):(a.callback=function(g,i,j,k){i||b._isUndefined(k)||console.log("Error: "+k.message),i&&!b._isUndefined(a.cache)&&(d[e]=k),!i&&g&&h+1<b.hosts.length?f(h+1):b._isUndefined(c)||c(i,k)},a.hostname=b.hosts[h],b._jsonRequestByHost(a),void 0)};f()},_jsonRequestByHost:function(a){var b=null,c=this;this._isUndefined(a.body)||(b=JSON.stringify(a.body));var d=a.hostname+a.url,e=null;e=new XMLHttpRequest,"withCredentials"in e?(e.open(a.method,d,!0),e.setRequestHeader("X-Algolia-API-Key",this.apiKey),e.setRequestHeader("X-Algolia-Application-Id",this.applicationID),null!=b&&e.setRequestHeader("Content-type","application/json")):"undefined"!=typeof XDomainRequest?(e=new XDomainRequest,e.open(a.method,d)):console.log("your browser is too old to support CORS requests"),e.send(b),e.onload=function(b){if(c._isUndefined(b))a.callback(!1,!0,b,JSON.parse(e.responseText));else{var d=0===b.target.status||503===b.target.status,f=200===b.target.status||201===b.target.status;a.callback(d,f,b.target,null!=b.target.response?JSON.parse(b.target.response):null)}},e.onerror=function(){a.callback(!0,!1,null,{message:"Could not connect to Host"})}},_getSearchParams:function(a,b){if(this._isUndefined(a)||null==a)return b;for(var c in a)null!=c&&a.hasOwnProperty(c)&&(b+=0===b.length?"?":"&",b+=c+"="+encodeURIComponent(a[c]));return b},_isUndefined:function(a){return void 0===a},applicationID:null,apiKey:null,hosts:[],cache:{}},AlgoliaSearch.prototype.Index.prototype={clearCache:function(){this.cache={}},addObject:function(a,b,c){var d=this;this.as._isUndefined(c)?this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(d.indexName),body:a,callback:b}):this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(d.indexName)+"/"+encodeURIComponent(c),body:a,callback:b})},addObjects:function(a,b){for(var c=this,d={requests:[]},e=0;e<a.length;++e){var f={action:"addObject",body:a[e]};d.requests.push(f)}this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/batch",body:d,callback:b})},getObject:function(a,b,c){var d=this,e="";if(!this.as._isUndefined(c)){e="?attributes=";for(var f=0;f<c.length;++f)0!==f&&(e+=","),e+=c[f]}this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(d.indexName)+"/"+encodeURIComponent(a)+e,callback:b})},partialUpdateObject:function(a,b){var c=this;this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/"+encodeURIComponent(a.objectID)+"/partial",body:a,callback:b})},saveObject:function(a,b){var c=this;this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/"+encodeURIComponent(a.objectID),body:a,callback:b})},saveObjects:function(a,b){for(var c=this,d={requests:[]},e=0;e<a.length;++e){var f={action:"updateObject",objectID:encodeURIComponent(a[e].objectID),body:a[e]};d.requests.push(f)}this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/batch",body:d,callback:b})},deleteObject:function(a,b){if(null==a||0===a.length)return b(!1,{message:"empty objectID"}),void 0;var c=this;this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/"+encodeURIComponent(a),callback:b})},search:function(a,b,c,d){var e=this,f="query="+encodeURIComponent(a);if(this.as._isUndefined(c)||null==c||(f=this.as._getSearchParams(c,f)),window.clearTimeout(e.onDelayTrigger),!this.as._isUndefined(d)&&null!=d&&d>0){var g=window.setTimeout(function(){e._search(f,b)},d);e.onDelayTrigger=g}else this._search(f,b)},getTypeaheadTransport:function(a,b){return this.typeAheadArgs=a,"undefined"!=typeof b&&(this.typeAheadPropertyName=b),this},get:function(a,b,c,d,e){return self=this,this.search(a,function(a,b){if(a){for(var f=0;f<b.hits.length;++f){var g=b.hits[f];if("undefined"==typeof g.value)if(null!=self.typeAheadPropertyName&&"undefined"!=typeof g[self.typeAheadPropertyName])g.value=g[self.typeAheadPropertyName];else{var h=!1;for(var i in g)!h&&g.hasOwnProperty(i)&&"string"==typeof g[i]&&(g.value=g[i],h=!0)}e.push(c._transformDatum(g))}d&&d(e)}},self.typeAheadArgs),!0},waitTask:function(a,b){var c=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/task/"+a,callback:function(d,e){if(d&&"published"===e.status)b(!0,e);else{if(d&&e.pendingTask)return c.waitTask(a,b);b(!1,e)}}})},clearIndex:function(a){var b=this;this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(b.indexName)+"/clear",callback:a})},getSettings:function(a){var b=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(b.indexName)+"/settings",callback:a})},setSettings:function(a,b){var c=this;this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/settings",body:a,callback:b})},listUserKeys:function(a){var b=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(b.indexName)+"/keys",callback:a})},getUserKeyACL:function(a,b){var c=this;this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/keys/"+a,callback:b})},deleteUserKey:function(a,b){var c=this;this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/keys/"+a,callback:b})},addUserKey:function(a,b){var c=this,d={};d.acl=a,this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/keys",body:d,callback:b})},addUserKeyWithValidity:function(a,b,c){var d=this,e={};e.acl=a,e.validity=b,this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(d.indexName)+"/keys",body:e,callback:c})},_search:function(a,b){this.as._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/query",body:{params:a,apiKey:this.as.apiKey,appID:this.as.applicationID},callback:b})},as:null,indexName:null,cache:{},typeAheadArgs:null,typeAheadPropertyName:null,emptyConstructor:function(){}}; |
@@ -43,3 +43,3 @@ { | ||
}, | ||
"version": "2.1.1" | ||
"version": "2.2.0" | ||
} |
@@ -54,19 +54,24 @@ Algolia Search API Client for Javascript | ||
* **attributes**: a string that contains the names of attributes to retrieve separated by a comma.<br/>By default all attributes are retrieved. | ||
* **attributesToHighlight**: a string that contains the names of attributes to highlight separated by a comma.<br/>By default indexed attributes are highlighted. Numerical attributes cannot be highlighted. A **matchLevel** is returned for each highlighted attribute and can contain: "full" if all the query terms were found in the attribute, "partial" if only some of the query terms were found, or "none" if none of the query terms were found. | ||
* **attributesToSnippet**: a string that contains the names of attributes to snippet alongside the number of words to return (syntax is 'attributeName:nbWords'). Attributes are separated by a comma (Example: "attributesToSnippet=name:10,content:10").<br/>By default no snippet is computed. | ||
* **page**: (integer) Pagination parameter used to select the page to retrieve.<br/>Page is zero-based and defaults to 0. Thus, to retrieve the 10th page you need to set `page=9` | ||
* **hitsPerPage**: (integer) Pagination parameter used to select the number of hits per page. Defaults to 20. | ||
* **attributesToRetrieve**: a string that contains the list of object attributes you want to retrieve (let you minimize the answer size).<br/> Attributes are separated with a comma (for example `"name,address"`), you can also use a string array encoding (for example `["name","address"]` ). By default, all attributes are retrieved. You can also use `* to retrieve all values when an **attributesToRetrieve** setting is specified for your index. | ||
* **attributesToHighlight**: a string that contains the list of attributes you want to highlight according to the query. Attributes are separated by a comma. You can also use a string array encoding (for example `["name","address"]`). If an attribute has no match for the query, the raw value is returned. By default all indexed text attributes are highlighted. You can use `*` if you want to highlight all textual attributes. Numerical attributes are not highlighted. A matchLevel is returned for each highlighted attribute and can contain: | ||
* **full**: if all the query terms were found in the attribute, | ||
* **partial**: if only some of the query terms were found, | ||
* **none**: if none of the query terms were found. | ||
* **attributesToSnippet**: a string that contains the list of attributes to snippet alongside the number of words to return (syntax is `attributeName:nbWords`). Attributes are separated by a comma (Example: `attributesToSnippet=name:10,content:10`). <br/>You can also use a string array encoding (Example: `attributesToSnippet: ["name:10","content:10"]`). By default no snippet is computed. | ||
* **minWordSizefor1Typo**: the minimum number of characters in a query word to accept one typo in this word.<br/>Defaults to 3. | ||
* **minWordSizefor2Typos**: the minimum number of characters in a query word to accept two typos in this word.<br/>Defaults to 7. | ||
* **getRankingInfo**: if set to 1, the result hits will contain ranking information in _rankingInfo attribute. | ||
* **page**: *(pagination parameter)* page to retrieve (zero base).<br/>Defaults to 0. | ||
* **hitsPerPage**: *(pagination parameter)* number of hits per page.<br/>Defaults to 10. | ||
* **getRankingInfo**: if set to 1, the result hits will contain ranking information in **_rankingInfo** attribute. | ||
* **aroundLatLng**: search for entries around a given latitude/longitude (specified as two floats separated by a comma).<br/>For example `aroundLatLng=47.316669,5.016670`).<br/>You can specify the maximum distance in meters with the **aroundRadius** parameter (in meters) and the precision for ranking with **aroundPrecision** (for example if you set aroundPrecision=100, two objects that are distant of less than 100m will be considered as identical for "geo" ranking parameter).<br/>At indexing, you should specify geoloc of an object with the _geoloc attribute (in the form `{"_geoloc":{"lat":48.853409, "lng":2.348800}}`) | ||
* **insideBoundingBox**: search entries inside a given area defined by the two extreme points of a rectangle (defined by 4 floats: p1Lat,p1Lng,p2Lat,p2Lng).<br/>For example `insideBoundingBox=47.3165,4.9665,47.3424,5.0201`).<br/>At indexing, you should specify geoloc of an object with the _geoloc attribute (in the form `{"_geoloc":{"lat":48.853409, "lng":2.348800}}`) | ||
* **queryType**: select how the query words are interpreted: | ||
* **numericFilters**: a string that contains the list of numeric filters you want to apply separated by a comma. The syntax of one filter is `attributeName` followed by `operand` followed by `value`. Supported operands are `<`, `<=`, `=`, `>` and `>=`. | ||
You can have multiple conditions on one attribute like for example `numerics=price>100,price<1000`. You can also use a string array encoding (for example `numericFilters: ["price>100","price<1000"]`). | ||
* **tagFilters**: filter the query by a set of tags. You can AND tags by separating them by commas. To OR tags, you must add parentheses. For example, `tags=tag1,(tag2,tag3)` means *tag1 AND (tag2 OR tag3)*. You can also use a string array encoding, for example `tagFilters: ["tag1",["tag2","tag3"]]` means *tag1 AND (tag2 OR tag3)*.<br/>At indexing, tags should be added in the **_tags** attribute of objects (for example `{"_tags":["tag1","tag2"]}`). | ||
* **facets**: filter the query by a list of facets. Facets are separated by commas and each facet is encoded as `attributeName:value`. For example: `facetFilters=category:Book,author:John%20Doe`. You can also use a string array encoding (for example `["category:Book","author:John%20Doe"]`). | ||
* **queryType**: select how the query words are interpreted, it can be one of the following value: | ||
* **prefixAll**: all query words are interpreted as prefixes, | ||
* **prefixLast**: only the last word is interpreted as a prefix (default behavior), | ||
* **prefixNone**: no query word is interpreted as a prefix. This option is not recommended. | ||
* **numerics**: specify the list of numeric filters you want to apply separated by a comma. The syntax of one filter is `attributeName` followed by `operand` followed by `value`. Supported operands are `<`, `<=`, `=`, `>` and `>=`. | ||
You can have multiple conditions on one attribute like for example `numerics=price>100,price<1000`. | ||
* **tags**: filter the query by a set of tags. You can AND tags by separating them by commas. To OR tags, you must add parentheses. For example, `tags=tag1,(tag2,tag3)` means *tag1 AND (tag2 OR tag3)*.<br/>At indexing, tags should be added in the _tags attribute of objects (for example `{"_tags":["tag1","tag2"]}` ) | ||
* **optionalWords**: a string that contains the list of words that should be considered as optional when found in the query. The list of words is comma separated. | ||
@@ -85,3 +90,3 @@ ```javascript | ||
} | ||
}, {'attributes': 'firstname,lastname', 'hitsPerPage': 50}); | ||
}, {'attributesToRetrieve': 'firstname,lastname', 'hitsPerPage': 50}); | ||
``` | ||
@@ -143,3 +148,3 @@ | ||
"query": "jimmie paint", | ||
"params": "query=jimmie+paint&" | ||
"params": "query=jimmie+paint&atributesToRetrieve=firstname,lastname&hitsPerPage=50" | ||
} | ||
@@ -146,0 +151,0 @@ ``` |
@@ -598,36 +598,48 @@ /* | ||
* @param args (optional) if set, contains an object with query parameters: | ||
* - attributes: a string that contains attribute names to retrieve separated by a comma. | ||
* By default all attributes are retrieved. | ||
* - numerics: specify the list of numeric filters you want to apply separated by a comma. | ||
* The syntax of one filter is `attributeName` followed by `operand` followed by `value`. | ||
* Supported operands are `<`, `<=`, `=`, `>` and `>=`. | ||
* You can have multiple conditions on one attribute like for example `numerics=price>100,price<1000`. | ||
* - attributesToHighlight: a string that contains attribute names to highlight separated by a comma. | ||
* By default all indexed attributes are highlighted. | ||
* - attributesToSnippet: a string that contains the names of attributes to snippet alongside | ||
* the number of words to return (syntax is 'attributeName:nbWords'). | ||
* Attributes are separated by a comma (Example: "attributesToSnippet=name:10,content:10"). | ||
* By default no snippet is computed. | ||
* - minWordSizefor1Typo: the minimum number of characters to accept one typo. | ||
* Defaults to 3. | ||
* - minWordSizefor2Typos: the minimum number of characters to accept two typos. | ||
* Defaults to 7. | ||
* - getRankingInfo: if set, the result hits will contain ranking information in | ||
* _rankingInfo attribute | ||
* - page: (pagination parameter) page to retrieve (zero base). Defaults to 0. | ||
* - hitsPerPage: (pagination parameter) number of hits per page. Defaults to 10. | ||
* - aroundLatLng let you search for entries around a given latitude/longitude (two float separated | ||
* by a ',' for example aroundLatLng=47.316669,5.016670). | ||
* You can specify the maximum distance in meters with aroundRadius parameter (in meters). | ||
* At indexing, geoloc of an object should be set with _geoloc attribute containing lat and lng attributes (for example {"_geoloc":{"lat":48.853409, "lng":2.348800}}) | ||
* - insideBoundingBox let you search entries inside a given area defined by the two extreme points of | ||
* a rectangle (defined by 4 floats: p1Lat,p1Lng,p2Lat, p2Lng. | ||
* For example insideBoundingBox=47.3165,4.9665,47.3424,5.0201). | ||
* - queryType: select how the query words are interpreted: | ||
* - prefixAll: all query words are interpreted as prefixes, | ||
* - prefixLast: only the last word is interpreted as a prefix (default behavior), | ||
* - prefixNone: no query word is interpreted as a prefix. This option is not recommended. | ||
* At indexing, geoloc of an object should be set with _geoloc attribute containing lat and lng attributes (for example {"_geoloc":{"lat":48.853409, "lng":2.348800}}) | ||
* - tags filter the query by a set of tags. You can AND tags by separating them by commas. To OR tags, you must add parentheses. For example, tags=tag1,(tag2,tag3) means tag1 AND (tag2 OR tag3). | ||
* At indexing, tags should be added in the _tags attribute of objects (for example {"_tags":["tag1","tag2"]} ) | ||
* - page: (integer) Pagination parameter used to select the page to retrieve. | ||
* Page is zero-based and defaults to 0. Thus, to retrieve the 10th page you need to set page=9 | ||
* - hitsPerPage: (integer) Pagination parameter used to select the number of hits per page. Defaults to 20. | ||
* - attributesToRetrieve: a string that contains the list of object attributes you want to retrieve (let you minimize the answer size). | ||
* Attributes are separated with a comma (for example "name,address"). | ||
* You can also use a string array encoding (for example ["name","address"]). | ||
* By default, all attributes are retrieved. You can also use '*' to retrieve all values when an attributesToRetrieve setting is specified for your index. | ||
* - attributesToHighlight: a string that contains the list of attributes you want to highlight according to the query. | ||
* Attributes are separated by a comma. You can also use a string array encoding (for example ["name","address"]). | ||
* If an attribute has no match for the query, the raw value is returned. By default all indexed text attributes are highlighted. | ||
* You can use `*` if you want to highlight all textual attributes. Numerical attributes are not highlighted. | ||
* A matchLevel is returned for each highlighted attribute and can contain: | ||
* - full: if all the query terms were found in the attribute, | ||
* - partial: if only some of the query terms were found, | ||
* - none: if none of the query terms were found. | ||
* - attributesToSnippet: a string that contains the list of attributes to snippet alongside the number of words to return (syntax is `attributeName:nbWords`). | ||
* Attributes are separated by a comma (Example: attributesToSnippet=name:10,content:10). | ||
* You can also use a string array encoding (Example: attributesToSnippet: ["name:10","content:10"]). By default no snippet is computed. | ||
* - minWordSizefor1Typo: the minimum number of characters in a query word to accept one typo in this word. Defaults to 3. | ||
* - minWordSizefor2Typos: the minimum number of characters in a query word to accept two typos in this word. Defaults to 7. | ||
* - getRankingInfo: if set to 1, the result hits will contain ranking information in _rankingInfo attribute. | ||
* - aroundLatLng: search for entries around a given latitude/longitude (specified as two floats separated by a comma). | ||
* For example aroundLatLng=47.316669,5.016670). | ||
* You can specify the maximum distance in meters with the aroundRadius parameter (in meters) and the precision for ranking with aroundPrecision | ||
* (for example if you set aroundPrecision=100, two objects that are distant of less than 100m will be considered as identical for "geo" ranking parameter). | ||
* At indexing, you should specify geoloc of an object with the _geoloc attribute (in the form {"_geoloc":{"lat":48.853409, "lng":2.348800}}) | ||
* - insideBoundingBox: search entries inside a given area defined by the two extreme points of a rectangle (defined by 4 floats: p1Lat,p1Lng,p2Lat,p2Lng). | ||
* For example insideBoundingBox=47.3165,4.9665,47.3424,5.0201). | ||
* At indexing, you should specify geoloc of an object with the _geoloc attribute (in the form {"_geoloc":{"lat":48.853409, "lng":2.348800}}) | ||
* - numericFilters: a string that contains the list of numeric filters you want to apply separated by a comma. | ||
* The syntax of one filter is `attributeName` followed by `operand` followed by `value`. Supported operands are `<`, `<=`, `=`, `>` and `>=`. | ||
* You can have multiple conditions on one attribute like for example numerics=price>100,price<1000. | ||
* You can also use a string array encoding (for example numericFilters: ["price>100","price<1000"]). | ||
* - tagFilters: filter the query by a set of tags. You can AND tags by separating them by commas. | ||
* To OR tags, you must add parentheses. For example, tags=tag1,(tag2,tag3) means tag1 AND (tag2 OR tag3). | ||
* You can also use a string array encoding, for example tagFilters: ["tag1",["tag2","tag3"]] means tag1 AND (tag2 OR tag3). | ||
* At indexing, tags should be added in the _tags** attribute of objects (for example {"_tags":["tag1","tag2"]}). | ||
* - facets: filter the query by a list of facets. Facets are separated by commas and each facet is encoded as attributeName:value. | ||
* For example: facetFilters=category:Book,author:John%20Doe. | ||
* You can also use a string array encoding (for example ["category:Book","author:John%20Doe"]). | ||
* - queryType: select how the query words are interpreted, it can be one of the following value: | ||
* - prefixAll: all query words are interpreted as prefixes, | ||
* - prefixLast: only the last word is interpreted as a prefix (default behavior), | ||
* - prefixNone: no query word is interpreted as a prefix. This option is not recommended. | ||
* - optionalWords: a string that contains the list of words that should be considered as optional when found in the query. | ||
* The list of words is comma separated. | ||
* @param delay (optional) if set, wait for this delay (in ms) and only send the query if there was no other in the meantime. | ||
@@ -716,2 +728,15 @@ */ | ||
/* | ||
* This function deletes the index content. Settings and index specific API keys are kept untouched. | ||
* | ||
* @param callback (optional) the result callback with two arguments | ||
* success: boolean set to true if the request was successfull | ||
* content: the settings object or the error message if a failure occured | ||
*/ | ||
clearIndex: function(callback) { | ||
var indexObj = this; | ||
this.as._jsonRequest({ method: 'POST', | ||
url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/clear', | ||
callback: callback }); | ||
}, | ||
/* | ||
* Get settings of this index | ||
@@ -734,36 +759,41 @@ * | ||
* @param settigns the settings object that can contains : | ||
* - minWordSizefor1Typo (integer) the minimum number of characters to accept one typo (default = 3) | ||
* - minWordSizefor2Typos: (integer) the minimum number of characters to accept two typos (default = 7) | ||
* - hitsPerPage: (integer) the number of hits per page (default = 10) | ||
* - attributesToRetrieve: (array of strings) default list of attributes to retrieve for objects | ||
* - attributesToHighlight: (array of strings) default list of attributes to highlight. | ||
* - attributesToSnippet: (array of strings) default list of attributes to snippet alongside the number of words to return (syntax is 'attributeName:nbWords'). Attributes are separated by a comma (Example: "attributesToSnippet=name:10,content:10").<br/>By default no snippet is computed. | ||
* - attributesToIndex: (array of strings) the list of fields you want to index. | ||
* By default all textual and numerical attributes of your objects are indexed, but you should update it to get optimal | ||
* results. This parameter has two important uses: | ||
* - Limit the attributes to index. | ||
* For example if you store a binary image in base64, you want to store it in the index but you | ||
* don't want to use the base64 string for search. | ||
* - Control part of the ranking (see the ranking parameter for full explanation). | ||
* Matches in attributes at the beginning of the list will be considered more important than matches | ||
* in attributes further down the list. | ||
* In one attribute, matching text at the beginning of the attribute will be considered more important than text after, | ||
* you can disable this behavior if you add your attribute inside `unordered(AttributeName)`, | ||
* for example `attributesToIndex:["title", "unordered(text)"]`. | ||
* - ranking: (array of strings) controls the way results are sorted. | ||
* We have three available criteria: | ||
* - typo (sort according to number of typos), | ||
* - geo: (sort according to decreassing distance when performing a geo-location based search), | ||
* - proximity: sort according to the proximity of query words in hits, | ||
* - attribute: sort according to the order of attributes defined by **attributesToIndex**, | ||
* - exact: sort according to the number of words that are matched identical to query word (and not as a prefix), | ||
* - custom which is user defined | ||
* (the standard order is ["typo", "geo", "proximity", "attribute", "exact", "custom"]) | ||
* - customRanking: (array of strings) lets you specify part of the ranking. | ||
* The syntax of this condition is an array of strings containing attributes prefixed | ||
* by asc (ascending order) or desc (descending order) operator. | ||
* - queryType: select how the query words are interpreted: | ||
* - prefixAll: all query words are interpreted as prefixes, | ||
* - prefixLast: only the last word is interpreted as a prefix (default behavior), | ||
* - prefixNone: no query word is interpreted as a prefix. This option is not recommended. | ||
* - minWordSizefor1Typo: (integer) the minimum number of characters to accept one typo (default = 3). | ||
* - minWordSizefor2Typos: (integer) the minimum number of characters to accept two typos (default = 7). | ||
* - hitsPerPage: (integer) the number of hits per page (default = 10). | ||
* - attributesToRetrieve: (array of strings) default list of attributes to retrieve in objects. | ||
* If set to null, all attributes are retrieved. | ||
* - attributesToHighlight: (array of strings) default list of attributes to highlight. | ||
* If set to null, all indexed attributes are highlighted. | ||
* - attributesToSnippet**: (array of strings) default list of attributes to snippet alongside the number of words to return (syntax is attributeName:nbWords). | ||
* By default no snippet is computed. If set to null, no snippet is computed. | ||
* - attributesToIndex: (array of strings) the list of fields you want to index. | ||
* If set to null, all textual and numerical attributes of your objects are indexed, but you should update it to get optimal results. | ||
* This parameter has two important uses: | ||
* - Limit the attributes to index: For example if you store a binary image in base64, you want to store it and be able to | ||
* retrieve it but you don't want to search in the base64 string. | ||
* - Control part of the ranking*: (see the ranking parameter for full explanation) Matches in attributes at the beginning of | ||
* the list will be considered more important than matches in attributes further down the list. | ||
* In one attribute, matching text at the beginning of the attribute will be considered more important than text after, you can disable | ||
* this behavior if you add your attribute inside `unordered(AttributeName)`, for example attributesToIndex: ["title", "unordered(text)"]. | ||
* - attributesForFaceting: (array of strings) The list of fields you want to use for faceting. | ||
* All strings in the attribute selected for faceting are extracted and added as a facet. If set to null, no attribute is used for faceting. | ||
* - ranking: (array of strings) controls the way results are sorted. | ||
* We have six available criteria: | ||
* - typo: sort according to number of typos, | ||
* - geo: sort according to decreassing distance when performing a geo-location based search, | ||
* - proximity: sort according to the proximity of query words in hits, | ||
* - attribute: sort according to the order of attributes defined by attributesToIndex, | ||
* - exact: sort according to the number of words that are matched identical to query word (and not as a prefix), | ||
* - custom: sort according to a user defined formula set in **customRanking** attribute. | ||
* The standard order is ["typo", "geo", "proximity", "attribute", "exact", "custom"] | ||
* - customRanking: (array of strings) lets you specify part of the ranking. | ||
* The syntax of this condition is an array of strings containing attributes prefixed by asc (ascending order) or desc (descending order) operator. | ||
* For example `"customRanking" => ["desc(population)", "asc(name)"]` | ||
* - queryType: Select how the query words are interpreted, it can be one of the following value: | ||
* - prefixAll: all query words are interpreted as prefixes, | ||
* - prefixLast: only the last word is interpreted as a prefix (default behavior), | ||
* - prefixNone: no query word is interpreted as a prefix. This option is not recommended. | ||
* - highlightPreTag: (string) Specify the string that is inserted before the highlighted parts in the query result (default to "<em>"). | ||
* - highlightPostTag: (string) Specify the string that is inserted after the highlighted parts in the query result (default to "</em>"). | ||
* - optionalWords: (array of strings) Specify a list of words that should be considered as optional when found in the query. | ||
* @param callback (optional) the result callback with two arguments | ||
@@ -770,0 +800,0 @@ * success: boolean set to true if the request was successfull |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
167470
18
1617
165