public IEnumerable <Suggestion> GetSuggestions(SuggesterModel model, out XA.Foundation.Search.Timer queryTimer, out string indexName) { bool fuzzy = Configuration.Settings.GetBoolSetting("AzureSearchSuggesterFuzzy", false); bool highlights = Configuration.Settings.GetBoolSetting("AzureSearchSuggesterHighlight", false); ISearchIndex searchIndex = IndexResolver.ResolveIndex(!model.ContextItemID.IsNull ? ContentRepository.GetItem(model.ContextItemID) : null); indexName = searchIndex.Name; searchIndex.Initialize(); using (IProviderSearchContext searchContext = searchIndex.CreateSearchContext(SearchSecurityOptions.Default)) { SuggestParameters sp = new SuggestParameters() { UseFuzzyMatching = fuzzy, Top = 5 }; if (highlights) { string tag = Configuration.Settings.GetSetting("AzureSearchSuggesterHighlightTag"); sp.HighlightPreTag = $"<{tag}>"; sp.HighlightPostTag = $"</{tag}>"; } AzureSuggestQuery term = model.Term; DocumentSuggestResult <Document> handlerQueryResults; using (queryTimer = new XA.Foundation.Search.Timer()) handlerQueryResults = searchContext.Suggest(term, Configuration.Settings.GetSetting("AzureSearchSuggesterName"), sp); return(handlerQueryResults.Results.Select(a => new Suggestion() { Term = a.Text, Payload = JsonConvert.SerializeObject(a.Document) })); } }
public AutocompleteResult Autocomplete(AzureSuggestQuery q, string suggester, AutocompleteParameters options) { ISearchService availableSearchService = GetAvailableSearchService(); if (availableSearchService != null) { return(((SearchService)availableSearchService).Autocomplete(q, suggester, options)); } SearchLog.Log.Error("Search request cannot be processed. No search services are available. Please try again later.", null); return(null); }
public AutocompleteResult Autocomplete(AzureSuggestQuery q, string suggester, AutocompleteParameters options) { try { Microsoft.Azure.Search.SearchServiceClient _searchClient = new Microsoft.Azure.Search.SearchServiceClient(_searchService.Replace("https://", "").Replace(".search.windows.net", ""), new SearchCredentials(_apiKey)); ISearchIndexClient _indexClient = _searchClient.Indexes.GetClient(IndexName); return(_indexClient.Documents.Autocomplete(q.Query, suggester, options)); } catch (Exception e) { throw e; } }
public AutocompleteResult Autocomplete(AzureSuggestQuery q, string suggester, AutocompleteParameters options) { EnsureSearchServiceAvailable(); return(((ISearchServiceDocumentOperationsProvider)DocumentOperations).Autocomplete(q, suggester, options)); }
public DocumentSuggestResult <Document> Suggest(AzureSuggestQuery q, string suggester, SuggestParameters options) { EnsureSearchServiceAvailable(); return(((ISearchServiceDocumentOperationsProvider)DocumentOperations).Suggest(q, suggester, options)); }