public Task <AzureOperationResponse <AutocompleteResult> > AutocompleteWithHttpMessagesAsync(
     string searchText,
     string suggesterName,
     AutocompleteParameters autocompleteParameters     = null,
     SearchRequestOptions searchRequestOptions         = default(SearchRequestOptions),
     Dictionary <string, List <string> > customHeaders = null,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     if (Client.UseHttpGetForQueries)
     {
         return(Client.DocumentsProxy.AutocompleteGetWithHttpMessagesAsync(
                    searchText,
                    suggesterName,
                    searchRequestOptions,
                    autocompleteParameters,
                    customHeaders,
                    cancellationToken));
     }
     else
     {
         return(Client.DocumentsProxy.AutocompletePostWithHttpMessagesAsync(
                    autocompleteParameters.ToRequest(searchText, suggesterName),
                    searchRequestOptions,
                    customHeaders,
                    cancellationToken));
     }
 }
        public void CanConvertToPostRequestPayload()
        {
            var parameters =
                new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                Filter           = "field eq 'text'",
                HighlightPostTag = "</em>",
                HighlightPreTag  = "<em>",
                MinimumCoverage  = 33.3,
                SearchFields     = new[] { "a", "b", "c" },
                Top = 5,
                UseFuzzyMatching = true
            };

            AutocompleteRequest request = parameters.ToRequest("find me", "sg");

            Assert.Equal(parameters.AutocompleteMode, request.AutocompleteMode);
            Assert.Equal(parameters.Filter, request.Filter);
            Assert.Equal(parameters.HighlightPostTag, request.HighlightPostTag);
            Assert.Equal(parameters.HighlightPreTag, request.HighlightPreTag);
            Assert.Equal(parameters.MinimumCoverage, request.MinimumCoverage);
            Assert.Equal("find me", request.SearchText);
            Assert.Equal("sg", request.SuggesterName);
            Assert.Equal(parameters.SearchFields.ToCommaSeparatedString(), request.SearchFields);
            Assert.Equal(parameters.Top, request.Top);
            Assert.Equal(parameters.UseFuzzyMatching, request.UseFuzzyMatching);
        }
Esempio n. 3
0
        public ActionResult Both(string term)
        {
            InitSearch();

            AutocompleteParameters sp1 = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                UseFuzzyMatching = false,
                Top             = 5,
                MinimumCoverage = 80
            };
            AutocompleteResult resp1 = _indexClient.Documents.Autocomplete(term, "sg", sp1);

            // Call both the suggest and autocomplete API and return results
            SuggestParameters sp2 = new SuggestParameters()
            {
                UseFuzzyMatching = false,
                Top = 5
            };
            DocumentSuggestResult resp2 = _indexClient.Documents.Suggest(term, "sg", sp2);

            //Convert the suggest query results to a list that can be displayed in the client.
            var result = resp1.Results.Select(x => new { label = x.Text, category = "Autocomplete" }).ToList();

            result.AddRange(resp2.Results.Select(x => new { label = x.Text, category = "Suggestions" }).ToList());

            return(new JsonResult
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = result
            });
        }
        public async Task <string[]> AutoCompleteAsync(string phrase, params string[] markets)
        {
            var result = Array.Empty <string>();

            if (!string.IsNullOrWhiteSpace(phrase))
            {
                var parameters = new AutocompleteParameters
                {
                    AutocompleteMode = AutocompleteMode.TwoTerms,
                    UseFuzzyMatching = false,
                    Top = 5
                };
                if (!markets.IsNullOrEmpty())
                {
                    parameters.Filter = $"search.in({nameof(ApartmentDataIndexDocument.Market)}, '{string.Join("|", markets)}', '|')";
                }
                using (var client = CreateClient(_options))
                {
                    var autocompleteResult = await client.Documents.AutocompleteAsync(phrase, "sg", parameters);

                    result = autocompleteResult.Results.Select(x => x.Text).ToArray();
                }
            }
            return(result);
        }
Esempio n. 5
0
        public ActionResult AutoComplete(string term)
        {
            // Perform autocomplete

            AutocompleteParameters ap = new AutocompleteParameters()
            {
                UseFuzzyMatching = true,
                Top = 7,
                AutocompleteMode = AutocompleteMode.OneTerm
            };

            try
            {
                var           response    = searchClient.Indexes.GetClient(indexName).Documents.Autocomplete(term, "sg", ap);
                List <string> suggestions = new List <string>();
                foreach (var result in response.Results)
                {
                    suggestions.Add(result.QueryPlusText.ToString());
                }

                return(new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = suggestions
                });
            }
            catch (Exception)
            {
                return(null);
            }
        }
Esempio n. 6
0
        private static void RunAutocompleteQueries(ISearchIndexClient indexClient)
        {
            AutocompleteParameters acparameters = new AutocompleteParameters
            {
                SearchFields = "hotelName,description"
            };

            Console.WriteLine("Autocomplete query with OneTerm mode:\n");

            AutocompleteResult response = indexClient.Documents.Autocomplete(AutocompleteMode.OneTerm, "best ho", "sg", autocompleteParameters: acparameters);

            WriteAutocompleteResults(response);

            Console.WriteLine("Autocomplete with OneTermWithContext mode:\n");

            response = indexClient.Documents.Autocomplete(AutocompleteMode.OneTermWithContext, "best ho", "sg", autocompleteParameters: acparameters);

            WriteAutocompleteResults(response);

            Console.WriteLine("Autocomplete with TwoTerms mode:\n");

            response = indexClient.Documents.Autocomplete(AutocompleteMode.TwoTerms, "best ho", "sg", autocompleteParameters: acparameters);

            WriteAutocompleteResults(response);

            Console.WriteLine("Autocomplete with OneTerm mode with fuzzy enabled:\n");

            acparameters.Fuzzy = true;
            response           = indexClient.Documents.Autocomplete(AutocompleteMode.OneTerm, "best hostel", "sg", autocompleteParameters: acparameters);

            WriteAutocompleteResults(response);
        }
Esempio n. 7
0
        public List <string> GetSearchAutocomplete(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(new List <string>());
            }
            try
            {
                bool isFuzzyEnabled = false, isHiglightsEnabled = false;

                AutocompleteParameters ap = new AutocompleteParameters()
                {
                    AutocompleteMode = AutocompleteMode.OneTermWithContext,
                    UseFuzzyMatching = isFuzzyEnabled,
                    Top = 5
                };
                AutocompleteResult autocompleteResult = IndexClientSearch.Documents.Autocomplete(text, "toksdev-suggest", ap);

                // Convert the suggest query results to a list that can be displayed in the client.
                List <string> suggestions = (autocompleteResult.Results.Select(x => x.Text)).Distinct().ToList();
                return(suggestions);
            }
            catch (Exception e)
            {
                return(new List <string>());
            }
        }
Esempio n. 8
0
        protected void TestAutocompleteFuzzyIsOffByDefault()
        {
            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm
            };

            AutocompleteResult response = client.Documents.Autocomplete("pi", "sg", autocompleteParameters);

            Assert.NotNull(response.Results);
            Assert.Equal(0, response.Results.Count);
        }
Esempio n. 9
0
        protected void TestAutcompleteThrowsWhenGivenBadSuggesterName()
        {
            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm
            };

            SearchAssert.ThrowsCloudException(
                () => client.Documents.Autocomplete("very po", "Invalid suggester", autocompleteParameters),
                HttpStatusCode.BadRequest,
                "The specified suggester name 'Invalid suggester' does not exist in this index definition.\r\nParameter name: name");
        }
Esempio n. 10
0
        protected void TestAutocompleteExcludesFieldsNotInSuggester()
        {
            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm,
                SearchFields     = new[] { "hotelName" }
            };
            AutocompleteResult response = client.Documents.Autocomplete("luxu", "sg", autocompleteParameters);

            Assert.NotNull(response);
            Assert.NotNull(response.Results);
            Assert.Equal(0, response.Results.Count);
        }
Esempio n. 11
0
        public async Task <ActionResult> AutoComplete(string term)
        {
            InitSearch();

            // Setup the autocomplete parameters.
            var ap = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                Top = 6
            };
            AutocompleteResult autocompleteResult = await _indexClient.Documents.AutocompleteAsync(term, "sg", ap);

            // Convert the autocompleteResult results to a list that can be displayed in the client.
            List <string> autocomplete = autocompleteResult.Results.Select(x => x.Text).ToList();

            return(new JsonResult(autocomplete));
        }
Esempio n. 12
0
        /// <summary>
        /// We are manually building a parameter string to be used in our rest call.
        /// </summary>
        private string BuildParamString(string query, string suggestorName, AutocompleteParameters ap)
        {
            var sb = new StringBuilder();

            sb.Append($"api-version={ApiVersion}&search={query}&suggesterName={suggestorName}&autocompleteMode={AutocompleteMode}");

            if (ap.UseFuzzyMatching != null)
            {
                sb.Append($"&fuzzy={ap.UseFuzzyMatching.ToString().ToLower()}");
            }
            if (ap.Top != null)
            {
                sb.Append($"&$top={ap.Top}");
            }

            return(sb.ToString());
        }
Esempio n. 13
0
        public IActionResult Autocomplete(string term)
        {
            InitSearch();
            //Call autocomplete API and return results
            AutocompleteParameters ap = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                UseFuzzyMatching = false,
                Top = 5
            };
            AutocompleteResult autocompleteResult = _indexClient.Documents.Autocomplete(term, "sg", ap);

            // Conver the Suggest results to a list that can be displayed in the client.
            List <string> autocomplete = autocompleteResult.Results.Select(x => x.Text).ToList();

            return(new JsonResult(autocomplete.ToArray()));
        }
Esempio n. 14
0
        public async Task <ActionResult> AutoCompleteAndSuggest(string term)
        {
            // Use static variables to set up the configuration and Azure service and index clients, for efficiency.
            _builder       = new ConfigurationBuilder().AddJsonFile("appsettings.json");
            _configuration = _builder.Build();

            _serviceClient = CreateSearchServiceClient(_configuration);
            _indexClient   = _serviceClient.Indexes.GetClient("hotels");

            //Call autocomplete API and return results
            AutocompleteParameters ap = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                UseFuzzyMatching = false,
                Top = 1,
            };
            AutocompleteResult autocompleteResult = await _indexClient.Documents.AutocompleteAsync(term, "sg", ap);

            // Call suggest API and return results
            SuggestParameters sp = new SuggestParameters()
            {
                UseFuzzyMatching = false,
                Top = 8,
            };

            // Only one suggester can be specified per index. The name of the suggester is set when the suggester is specified by other API calls.
            // The suggester for the hotel database is called "sg" and simply searches the hotel name.
            DocumentSuggestResult <Hotel> suggestResult = await _indexClient.Documents.SuggestAsync <Hotel>(term, "sg", sp);

            List <string> results = new List <string>();

            if (autocompleteResult.Results.Count > 0)
            {
                results.Add(autocompleteResult.Results[0].Text);
            }
            else
            {
                results.Add("");
            }
            for (int n = 0; n < suggestResult.Results.Count; n++)
            {
                results.Add(suggestResult.Results[n].Text);
            }
            return(new JsonResult((object)results));
        }
Esempio n. 15
0
        public async Task <ActionResult> AutocompleteAndSuggest(string term)
        {
            InitSearch();

            // Setup the type-ahead search parameters.
            var ap = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                Top = 1,
            };
            AutocompleteResult autocompleteResult = await _indexClient.Documents.AutocompleteAsync(term, "sg", ap);

            // Setup the suggest search parameters.
            var sp = new SuggestParameters()
            {
                Top = 8,
            };

            // Only one suggester can be specified per index. The name of the suggester is set when the suggester is specified by other API calls.
            // The suggester for the hotel database is called "sg" and simply searches the hotel name.
            DocumentSuggestResult <Hotel> suggestResult = await _indexClient.Documents.SuggestAsync <Hotel>(term, "sg", sp);

            // Create an empty list.
            var results = new List <string>();

            if (autocompleteResult.Results.Count > 0)
            {
                // Add the top result for type-ahead.
                results.Add(autocompleteResult.Results[0].Text);
            }
            else
            {
                // There were no type-ahead suggestions, so add an empty string.
                results.Add("");
            }
            for (int n = 0; n < suggestResult.Results.Count; n++)
            {
                // Now add the suggestions.
                results.Add(suggestResult.Results[n].Text);
            }

            // Return the list.
            return(new JsonResult(results));
        }
Esempio n. 16
0
        public override async Task <EkKioskAutocompleteOptionsGetResponse> ExecuteAsync(EkKioskAutocompleteOptionsGetRequest request)
        {
            if (string.IsNullOrEmpty(request.Term) ||
                request.SearchType != EkSearchTypeEnum.Name)
            {
                return(new EkKioskAutocompleteOptionsGetResponse()
                {
                    AutocompleteOptions = new string[0],
                });
            }

            // cancellation token
            var cancellationToken = _httpContextAccessor.HttpContext?.RequestAborted ?? CancellationToken.None;

            using (var searchIndexClient = AzureSearchHelper.CreateSearchIndexClient(_ekSearchSettings.ServiceName, _ekSearchSettings.QueryKey))
            {
                searchIndexClient.IndexName = _ekSearchSettings.ProductsIndexName;

                var autocompleteParameters = new AutocompleteParameters()
                {
                    // todo: request by OneTermWithContext first, only then by OneTerm (if not enough results)
                    AutocompleteMode = AutocompleteMode.OneTerm,
                    UseFuzzyMatching = true,
                    Top          = 10,
                    SearchFields = EkKioskProductSearchByNameGet.GetLanguageSpecificTextFields(request.LanguageCode),
                };

                var autocompleteResult = await searchIndexClient.Documents.AutocompleteAsync(
                    request.Term,
                    SearchConstants.SuggesterName,
                    autocompleteParameters,
                    cancellationToken : cancellationToken);

                var autocompleteOptions = autocompleteResult.Results
                                          .Select(x => x.Text)
                                          .ToArray();

                return(new EkKioskAutocompleteOptionsGetResponse()
                {
                    AutocompleteOptions = autocompleteOptions,
                });
            }
        }
        public void MissingParametersAreMissingInTheRequest()
        {
            var parameters = new AutocompleteParameters();

            // Search text and suggester name can never be null.
            AutocompleteRequest request = parameters.ToRequest("welco", "sg");

            Assert.True(request.AutocompleteMode.HasValue);
            Assert.Equal(AutocompleteMode.OneTerm, request.AutocompleteMode.Value);  // AutocompleteMode is non-nullable in the client contract.
            Assert.Null(request.Filter);
            Assert.Null(request.HighlightPostTag);
            Assert.Null(request.HighlightPreTag);
            Assert.Null(request.MinimumCoverage);
            Assert.Equal("welco", request.SearchText);
            Assert.Equal("sg", request.SuggesterName);
            Assert.Null(request.SearchFields);
            Assert.Null(request.Top);
            Assert.False(request.UseFuzzyMatching.HasValue);
        }
        public AutocompleteResult Autocomplete(string searchText, bool fuzzy)
        {
            // Execute search based on query string
            try
            {
                AutocompleteParameters ap = new AutocompleteParameters()
                {
                    AutocompleteMode = AutocompleteMode.OneTermWithContext,
                    UseFuzzyMatching = fuzzy,
                    Top = 8
                };

                return(_indexClient.Documents.Autocomplete(searchText, "sg", ap));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error querying index: {0}\r\n", ex.Message.ToString());
            }
            return(null);
        }
        public async Task <ActionResult> AutocompleteAndSuggest(string term)
        {
            InitSearch();

            // Setup the type-ahead search parameters.
            var ap = new AutocompleteParameters
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                Top = 1
            };
            AutocompleteResult autocompleteResult = await _indexClient.Documents.AutocompleteAsync(term, "sg", ap);

            // Setup the suggest search parameters.
            var sp = new SuggestParameters
            {
                Top = 8
            };

            DocumentSuggestResult <Hotel> suggestResult =
                await _indexClient.Documents.SuggestAsync <Hotel>(term, "sg", sp);

            var results = new List <string>();

            if (autocompleteResult.Results.Count > 0)
            {
                // Add the top result for type-ahead
                results.Add(autocompleteResult.Results[0].Text);
            }
            else
            {
                // There were no type-ahead suggestions, so add an empty string.
                results.Add(string.Empty);
            }

            foreach (var result in suggestResult.Results)
            {
                results.Add(result.Text);
            }

            return(new JsonResult(results));
        }
Esempio n. 20
0
        protected void TestAutocompleteTwoTermsWithFuzzy()
        {
            var expectedText = new List <string>()
            {
                "model suites", "modern architecture", "modern stay", "morel coverings", "motel"
            };
            var expectedQueryPlusText = new List <string>()
            {
                "model suites", "modern architecture", "modern stay", "morel coverings", "motel"
            };

            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.TwoTerms, UseFuzzyMatching = true
            };
            AutocompleteResult response = client.Documents.Autocomplete("mod", "sg", autocompleteParameters);

            Assert.NotNull(response);
            ValidateResults(response.Results, expectedText, expectedQueryPlusText);
        }
Esempio n. 21
0
        protected void TestAutocompleteOneTermWithContextWithFuzzy()
        {
            var expectedText = new List <string>()
            {
                "very polite", "very police"
            };
            var expectedQueryPlusText = new List <string>()
            {
                "very polite", "very police"
            };

            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext, UseFuzzyMatching = true
            };
            AutocompleteResult response = client.Documents.Autocomplete("very polit", "sg", autocompleteParameters);

            Assert.NotNull(response);
            ValidateResults(response.Results, expectedText, expectedQueryPlusText);
        }
Esempio n. 22
0
        protected void TestAutocompleteStaticallyTypedDocuments()
        {
            var expectedText = new List <string>()
            {
                "point", "police", "polite", "pool", "popular"
            };
            var expectedQueryPlusText = new List <string>()
            {
                "very point", "very police", "very polite", "very pool", "very popular"
            };

            SearchIndexClient client = GetClientForQuery();

            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm, UseFuzzyMatching = false
            };
            AutocompleteResult response = client.Documents.Autocomplete("very po", "sg", autocompleteParameters);

            ValidateResults(response.Results, expectedText, expectedQueryPlusText);
        }
Esempio n. 23
0
        protected void TestAutocompleteWithMultipleSelectedFields()
        {
            var expectedText = new List <string>()
            {
                "model", "modern"
            };
            var expectedQueryPlusText = new List <string>()
            {
                "model", "modern"
            };

            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm,
                SearchFields     = new[] { "hotelName", "description" }
            };
            AutocompleteResult response = client.Documents.Autocomplete("mod", "sg", autocompleteParameters);

            Assert.NotNull(response);
            ValidateResults(response.Results, expectedText, expectedQueryPlusText);
        }
Esempio n. 24
0
        public ActionResult AutoComplete(string term)
        {
            InitSearch();
            //Call autocomplete API and return results
            AutocompleteParameters sp = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                UseFuzzyMatching = false,
                Top             = 5,
                MinimumCoverage = 80
            };
            AutocompleteResult resp = _indexClient.Documents.Autocomplete(term, "sg", sp);

            // Conver the Suggest results to a list that can be displayed in the client.
            List <string> autocomplete = resp.Results.Select(x => x.Text).ToList();

            return(new JsonResult
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = autocomplete
            });
        }
Esempio n. 25
0
        public AutocompleteResult AutoComplete(string searchText)
        {
            try
            {
                AutocompleteParameters ap = new AutocompleteParameters()
                {
                    AutocompleteMode = AutocompleteMode.OneTermWithContext,
                    UseFuzzyMatching = true,
                    HighlightPreTag  = "<b >",
                    HighlightPostTag = "</b>",
                    Top = 5
                };

                AutocompleteResult autocompleteResult = _indexClient.Documents.Autocomplete(searchText, "AccountSuggester", ap);
                return(autocompleteResult);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error querying index: {0}\r\n", ex.Message.ToString( ));
            }
            return(null);
        }
Esempio n. 26
0
        protected void TestAutocompleteOneTerm()
        {
            var expectedText = new List <string>()
            {
                "point", "police", "polite", "pool", "popular"
            };
            var expectedQueryPlusText = new List <string>()
            {
                "point", "police", "polite", "pool", "popular"
            };

            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm
            };

            AutocompleteResult response = client.Documents.Autocomplete("po", "sg", autocompleteParameters);

            Assert.NotNull(response);
            ValidateResults(response.Results, expectedText, expectedQueryPlusText);
        }
Esempio n. 27
0
        public async Task <ActionResult> AutoComplete(string term)
        {
            // Use static variables to set up the configuration and Azure service and index clients, for efficiency.
            _builder       = new ConfigurationBuilder().AddJsonFile("appsettings.json");
            _configuration = _builder.Build();

            _serviceClient = CreateSearchServiceClient(_configuration);
            _indexClient   = _serviceClient.Indexes.GetClient("hotels");

            //Call autocomplete API and return results
            AutocompleteParameters ap = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                UseFuzzyMatching = false,
                Top = 5
            };
            AutocompleteResult autocompleteResult = await _indexClient.Documents.AutocompleteAsync(term, "sg", ap);

            // Convert the autocompleteResult results to a list that can be displayed in the client.
            List <string> autocomplete = autocompleteResult.Results.Select(x => x.Text).ToList();

            return(new JsonResult((object)autocomplete));
        }
Esempio n. 28
0
        protected void TestAutocompleteWithFilter()
        {
            var expectedText = new List <string>()
            {
                "polite"
            };
            var expectedQueryPlusText = new List <string>()
            {
                "polite"
            };

            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm,
                Filter           = "search.in(hotelId, '6,7')",
            };

            AutocompleteResult response = client.Documents.Autocomplete("po", "sg", autocompleteParameters);

            Assert.NotNull(response);
            ValidateResults(response.Results, expectedText, expectedQueryPlusText);
        }
Esempio n. 29
0
        protected void TestAutocompleteWithFilterAndFuzzy()
        {
            var expectedText = new List <string>()
            {
                "modern", "motel"
            };
            var expectedQueryPlusText = new List <string>()
            {
                "modern", "motel"
            };

            SearchIndexClient client   = GetClientForQuery();
            var autocompleteParameters = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTerm,
                UseFuzzyMatching = true,
                Filter           = "hotelId ne '6' and (hotelName eq 'Modern Stay' or tags/any(t : t eq 'budget'))"
            };

            AutocompleteResult response = client.Documents.Autocomplete("mod", "sg", autocompleteParameters);

            Assert.NotNull(response);
            ValidateResults(response.Results, expectedText, expectedQueryPlusText);
        }
Esempio n. 30
0
        //public DocumentSearchResult<Document> SearchZip(string zipCode)
        //{
        //    // Execute search based on query string
        //    try
        //    {
        //        SearchParameters sp = new SearchParameters()
        //        {
        //            SearchMode = SearchMode.All,
        //            Top = 1,
        //        };
        //        return _indexZipClient.Documents.Search(zipCode, sp);
        //    }
        //    catch (Exception ex)
        //    {
        //        Console.WriteLine("Error querying index: {0}\r\n", ex.Message.ToString());
        //    }
        //    return null;
        //}
        public AutocompleteResult AutoComplete(IndexNameType indexNameType, string term)
        {
            //Call autocomplete API and return results
            AutocompleteParameters ap = new AutocompleteParameters()
            {
                AutocompleteMode = AutocompleteMode.OneTermWithContext,
                UseFuzzyMatching = false,
                Top = 5
            };

            var indexClient = GetIndexClient(indexNameType);

            var autocompleteResult = indexClient.Documents.Autocomplete(term, "sg", ap);

            return(autocompleteResult);
            //// Conver the Suggest results to a list that can be displayed in the client.
            //List<string> autocomplete = autocompleteResult.Results.Select(x => x.Text).ToList();
            //return new JsonResult(autocomplete);
            //return new JsonResult(new
            //{
            //    JsonRequestBehavior = 0,
            //    Data = autocomplete
            //});
        }