/// <summary> /// Gets suggested query terms by calling <see cref="SearchClient.Autocomplete(string, string, AutocompleteOptions, CancellationToken)"/>. /// </summary> /// <param name="cancellationToken">The token used to signal cancellation request.</param> public override void Run(CancellationToken cancellationToken) { AutocompleteResults autocompleteResults = SearchClient.Autocomplete(SearchText, SuggesterName, cancellationToken: cancellationToken).Value; #if DEBUG Assert.AreEqual(1, autocompleteResults.Results.Count); Assert.AreEqual("historic", autocompleteResults.Results[0].Text); #endif }
public JsonResult AutoComplete(string searchText) { SearchClient searchClient = new SearchClient(new Uri(_configuration.GetValue <string>("AZURE_SEARCH_URI")), _configuration.GetValue <string>("AZURE_SEARCH_INDEX"), new AzureKeyCredential(_configuration.GetValue <string>("AZURE_SEARCH_KEY"))); AutocompleteOptions autocompleteOptions = new AutocompleteOptions() { Mode = AutocompleteMode.OneTermWithContext }; Response <AutocompleteResults> autocompleteResult = searchClient.Autocomplete(searchText, "documentSuggester", autocompleteOptions); // Convert the autocompleteResult results to a list that can be displayed in the client. List <string> searchResults = autocompleteResult.Value.Results.Select(x => x.Text).ToList(); return(Json(searchResults)); }
public AutocompleteResults Autocomplete(string searchText, bool fuzzy) { // Execute search based on query string try { AutocompleteOptions options = new AutocompleteOptions() { Mode = AutocompleteMode.OneTermWithContext, UseFuzzyMatching = fuzzy, Size = 8 }; return _searchClient.Autocomplete(searchText, "sg", options); } catch (Exception ex) { Console.WriteLine("Error querying index: {0}\r\n", ex.Message.ToString()); } return null; }
// Run queries, use WriteDocuments to print output private static void RunQueries(SearchClient srchclient) { SearchOptions options; SearchResults <Hotel> response; // Query 1 Console.WriteLine("Query #1: Search on empty term '*' to return all documents, showing a subset of fields...\n"); options = new SearchOptions() { IncludeTotalCount = true, Filter = "", OrderBy = { "" } }; options.Select.Add("HotelId"); options.Select.Add("HotelName"); options.Select.Add("Rating"); response = srchclient.Search <Hotel>("*", options); WriteDocuments(response); // Query 2 Console.WriteLine("Query #2: Search on 'hotels', filter on 'Rating gt 4', sort by Rating in descending order...\n"); options = new SearchOptions() { Filter = "Rating gt 4", OrderBy = { "Rating desc" } }; options.Select.Add("HotelId"); options.Select.Add("HotelName"); options.Select.Add("Rating"); response = srchclient.Search <Hotel>("hotels", options); WriteDocuments(response); // Query 3 Console.WriteLine("Query #3: Limit search to specific fields (pool in Tags field)...\n"); options = new SearchOptions() { SearchFields = { "Tags" } }; options.Select.Add("HotelId"); options.Select.Add("HotelName"); options.Select.Add("Tags"); response = srchclient.Search <Hotel>("pool", options); WriteDocuments(response); // Query 4 - Use Facets to return a faceted navigation structure for a given query // Filters are typically used with facets to narrow results on OnClick events Console.WriteLine("Query #4: Facet on 'Category'...\n"); options = new SearchOptions() { Filter = "" }; options.Facets.Add("Category"); options.Select.Add("HotelId"); options.Select.Add("HotelName"); options.Select.Add("Category"); response = srchclient.Search <Hotel>("*", options); WriteDocuments(response); // Query 5 Console.WriteLine("Query #5: Look up a specific document...\n"); Response <Hotel> lookupResponse; lookupResponse = srchclient.GetDocument <Hotel>("3"); Console.WriteLine(lookupResponse.Value.HotelId); // Query 6 Console.WriteLine("Query #6: Call Autocomplete on HotelName...\n"); var autoresponse = srchclient.Autocomplete("sa", "sg"); WriteDocuments(autoresponse); }