code: function(searchParams, generateMatches, generateMeta) {
  			try {
  				return this.getFileClient().search(searchParams).then(function(jsonData) {
  					var searchResult = this.convert(jsonData, searchParams);
  					return this._generateMatches(searchParams, searchResult, generateMatches).then(function() {
  						return this._generateMeta(searchResult, generateMeta).then(function() {
  							return searchResult;
  						});
  					}.bind(this));
  				}.bind(this));
  			}
  			catch(err){
  				var error = err.message || err;
  				if(typeof error === "string" && error.toLowerCase().indexOf("search") > -1){ //$NON-NLS-1$ //$NON-NLS-0$
  					if(!this._crawler) {
  						this._crawler = this._createCrawler(searchParams);
  					}
  					if(searchParams.nameSearch) {
  						return this._crawler.searchName(searchParams).then(function(jsonData) {
  							return this.convert(jsonData, searchParams);
  						}.bind(this));
  					}
  					var result;
  					return result = this._crawler.search(function() {
  						result.progress(arguments[0], arguments[1]);
  					}).then(function(jsonData) {
  						return this.convert(jsonData, searchParams);
  					}.bind(this));
  				}
  				throw error;
  			}
  		}
docs: Runs a search and displays the results under the given DOM node.
  @public
  @param {Object} searchParams The search parameters.
  @param {Function(JSONObject)} Callback function that receives the results of the query.