Website search example 1

A code example for frontend search code that searches for the specific text in all the documents that have a URL assigned to them (once that have to be visible on frontend):

public class SearchResultEntry
{
	public string Label { get; set; }
	public string Description { get; set; }
	public string Url { get; set; }
}

public class SearchResult
{
	public ICollection<SearchResultEntry> Documents { get; set; }
	public int TotalDocumentsFound { get; set; }
}

public static class FrontendSearch
{
	public static async Task<SearchResult> SearchAsync(CultureInfo culture, string text, int pageSize, int pageNumber)
	{
        var searchQuery = new SearchQuery(text, culture)
		{
			MaxDocumentsNumber = pageSize,
			SearchResultOffset = pageNumber * pageSize
		};

		searchQuery.ShowOnlyDocumentsWithUrls();

		var result = await SearchFacade.SearchProvider.SearchAsync(searchQuery);
		return new SearchResult
		{
			Documents = result.Documents.Select(ToSearchResultLine).Evaluate(),
			TotalDocumentsFound = result.TotalHits
		};
	}

	private static SearchResultEntry ToSearchResultLine(SearchDocument doc)
	{
		object desc;

		doc.FieldValues.TryGetValue(DefaultDocumentFieldNames.Description, out desc);

		return new SearchResultEntry
		{
			Label = doc.Label,
			Description = desc as string,
			Url = doc.Url
		};
	}
}