public async Task <DocumentSearchResult> Search([FromUri] string searchText) { var credentials = new SearchCredentials(AzureSearchConfig.SearchServiceApiKey); SearchIndexClient client = new SearchIndexClient(AzureSearchConfig.SearchServiceName , AzureSearchConfig.SearchIndexName, credentials); var callersGeoLocation = LocationHelper.GetCallerLocation(); var scoringParam = new ScoringParameter(AzureSearchConfig.GeoScoringParameterName, $"{callersGeoLocation.Longitude},{callersGeoLocation.Latitude}"); var parameters = new SearchParameters { SearchMode = SearchMode.All, Facets = AzureSearchConfig.SearchIndexFacets, ScoringProfile = AzureSearchConfig.ScoringProfileName, ScoringParameters = new[] { scoringParam } }; return(await client.Documents.SearchAsync(searchText, parameters)); }
public async Task <IEnumerable <PersonModel> > Suspects([FromUri] string searchText) { var credentials = new SearchCredentials(AzureSearchConfig.SearchServiceApiKey); SearchIndexClient client = new SearchIndexClient(AzureSearchConfig.SearchServiceName , AzureSearchConfig.SearchIndexName, credentials); var callersGeoLocation = LocationHelper.GetCallerLocation(); var scoringParam = new ScoringParameter( AzureSearchConfig.GeoScoringParameterName, new string[] { callersGeoLocation.Longitude.ToString(), callersGeoLocation.Latitude.ToString() }); var parameters = new SearchParameters { SearchMode = SearchMode.All, Facets = AzureSearchConfig.SearchIndexFacets, ScoringProfile = AzureSearchConfig.ScoringProfileName, ScoringParameters = new[] { scoringParam }, Top = 10, Select = new[] { "FirstName", "LastName", "EyeColor", "HairColor", "Sex", "SuspectSearchImage" } }; DocumentSearchResult searchResult = await client.Documents.SearchAsync(searchText, parameters); var persons = searchResult.Results.Select(d => { return(new PersonModel { Name = d.Document["FirstName"].ToString() + d.Document["LastName"].ToString(), EyeColor = d.Document["EyeColor"].ToString(), HairColor = d.Document["HairColor"].ToString(), Sex = d.Document["Sex"].ToString(), SuspectSearchImage = d.Document["SuspectSearchImage"].ToString() }); }); return(persons); }