Esempio n. 1
0
        /// <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
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }