src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts/RemoteSearchProvider/prepareRequest
class RemoteSearchProvider:	private async prepareRequest(query: string, filterPage = 0): Promise<IBingRequestDetails> {
		const verbatimQuery = query;
		query = escapeSpecialChars(query);
		const boost = 10;
		const boostedQuery = `(${query})^${boost}`;

		// Appending Fuzzy after each word.
		query = query.replace(/\ +/g, '~ ') + '~';

		const encodedQuery = encodeURIComponent(boostedQuery + ' || ' + query);
		let url = `${this.options.endpoint.urlBase}`;

		if (this.options.endpoint.key) {
			url += `${API_VERSION}&${QUERY_TYPE}`;
		}

		const extensions = await this.installedExtensions;
		const filters = this.options.newExtensionsOnly ?
			[`diminish eq 'latest'`] :
			this.getVersionFilters(extensions, this.productService.settingsSearchBuildId);

		const filterStr = filters
			.slice(filterPage * RemoteSearchProvider.MAX_REQUEST_FILTERS, (filterPage + 1) * RemoteSearchProvider.MAX_REQUEST_FILTERS)
			.join(' or ');
		const hasMoreFilters = filters.length > (filterPage + 1) * RemoteSearchProvider.MAX_REQUEST_FILTERS;

		const body = JSON.stringify({
			search: encodedQuery,
			filters: encodeURIComponent(filterStr),
			rawQuery: encodeURIComponent(verbatimQuery)
		});

		return {
			url,
			body,
			hasMoreFilters
		};
	}