Commands: SearchAsync

Use the SearchAsync method to fetch the list of files matching the specified query.

Syntax

Task<SearchResults> SearchAsync(string query, string[] sortFields = null, int start = 0, int pageSize = 1024);
Parameters
query string The query containing search criteria (you can use the built-in fields or metadata entries) consistent with Lucene syntax
sortFields string[] The fields to sort by
start int The start number to read index results
pageSize int The max number of results that will be returned

Return Value
Task<SearchResults> A task that represents the asynchronous operation. The task result is SearchResults object which represents results of a specified query.

Example I

In order to get the list of files that has Everyone value under the AllowRead metadata key returned in ascending order by a full file name (stored under built-in __key field), you need to build the following query:

SearchResults results = await store
	.AsyncFilesCommands
	.SearchAsync("AllowRead:Everyone", new []{ "__key"});

Results order

There is a convention which determines the ordering type: ascending or descending. The usage of + symbol or no prefix before a name of the sorted field means that ascending sorting will be applied. In order to retrieve results in descending order you need to add - sign before the field name.

Example II

SearchResults results = await store
	.AsyncFilesCommands
	.SearchAsync(
		"AllowRead:Everyone", 
		new[] { "__key", "-__fileName" } // sort ascending by full path, then by file name in descending order
	);