public DocumentSearchClient(IConfiguration configuration, bool videoIndexerTimeRefs = false) { try { _configuration = configuration; searchServiceName = configuration.GetSection("SearchServiceName")?.Value; apiKey = configuration.GetSection("SearchApiKey")?.Value; IndexName = videoIndexerTimeRefs ? configuration.GetSection("SearchIndexNameVideoIndexerTimeRef")?.Value : configuration.GetSection("SearchIndexName")?.Value; IndexerName = configuration.GetSection("SearchIndexerName")?.Value; idField = configuration.GetSection("KeyField")?.Value; telemetryClient.InstrumentationKey = configuration.GetSection("InstrumentationKey")?.Value; // Options used to get a search id for reporting SearchClientOptions clientOptions = new SearchClientOptions(); clientOptions.AddPolicy(new SearchIdPipelinePolicy(), HttpPipelinePosition.PerCall); // Create an HTTP reference to the catalog index _searchIndexClient = new SearchIndexClient(new Uri($"https://{searchServiceName}.search.windows.net/"), new AzureKeyCredential(apiKey), options: clientOptions); _searchClient = _searchIndexClient.GetSearchClient(IndexName); Schema = new SearchSchema().AddFields(_searchIndexClient.GetIndex(IndexName).Value.Fields); Model = new SearchModel(Schema); _isPathBase64Encoded = (configuration.GetSection("IsPathBase64Encoded")?.Value == "True"); } catch (Exception e) { // If you get an exception here, most likely you have not set your // credentials correctly in appsettings.json throw new ArgumentException(e.Message.ToString()); } }
public DocumentSearchClient(IConfiguration configuration) { try { _configuration = configuration; searchServiceName = configuration.GetSection("SearchServiceName")?.Value; apiKey = configuration.GetSection("SearchApiKey")?.Value; IndexName = configuration.GetSection("SearchIndexName")?.Value; IndexerName = configuration.GetSection("SearchIndexerName")?.Value; idField = configuration.GetSection("KeyField")?.Value; telemetryClient.InstrumentationKey = configuration.GetSection("InstrumentationKey")?.Value; // Create an HTTP reference to the catalog index _searchIndexClient = new SearchIndexClient(new Uri($"https://{searchServiceName}.search.windows.net/"), new AzureKeyCredential(apiKey)); _searchClient = _searchIndexClient.GetSearchClient(IndexName); Schema = new SearchSchema().AddFields(_searchIndexClient.GetIndex(IndexName).Value.Fields); Model = new SearchModel(Schema); _isPathBase64Encoded = (configuration.GetSection("IsPathBase64Encoded")?.Value == "True"); } catch (Exception e) { // If you get an exceptio here, most likely you have not set your // credentials correctly in appsettings.json throw new ArgumentException(e.Message.ToString()); } }
public static SearchSchema AddFields(this SearchSchema schema, IEnumerable <Field> fields) { foreach (var field in fields) { schema.Fields[field.Name] = field.ToSearchField(); } return(schema); }
public static SearchSchema AddFields(this SearchSchema schema, IList <Azure.Search.Documents.Indexes.Models.SearchField> fields) { foreach (var field in fields) { schema.Fields[field.Name] = field.ToSearchField(); } return(schema); }
public SearchModel(SearchSchema schema) { Facets = new List <SearchField>(); Tags = new List <SearchField>(); List <string> validatedResultFields = new List <string>(); foreach (string s in resultFields) { if (schema.Fields.ContainsKey(s)) { validatedResultFields.Add(s); } } SelectFilter = validatedResultFields.ToArray(); if (facets.Count() > 0) { // add field to facets if in facets arr foreach (var field in facets) { if (schema.Fields[field] != null && schema.Fields[field].IsFacetable) { Facets.Add(schema.Fields[field]); } } } else { foreach (var field in schema.Fields.Where(f => f.Value.IsFacetable)) { Facets.Add(field.Value); } } if (tags.Count() > 0) { foreach (var field in tags) { if (schema.Fields[field] != null && schema.Fields[field].IsFacetable) { Tags.Add(schema.Fields[field]); } } } else { foreach (var field in schema.Fields.Where(f => f.Value.IsFacetable)) { Tags.Add(field.Value); } } SearchableFields = schema.Fields.Where(f => f.Value.IsSearchable).Select(f => f.Key).ToArray(); }
public SearchModel(SearchSchema schema) { Facets = new List <SearchField>(); Tags = new List <SearchField>(); SelectFilter = resultFields; if (facets.Count() > 0) { // add field to facets if in facets arr foreach (var field in facets) { if (schema.Fields.ContainsKey(field) && schema.Fields[field] != null && schema.Fields[field].IsFacetable) { Facets.Add(schema.Fields[field]); } } } else { foreach (var field in schema.Fields.Where(f => f.Value.IsFacetable)) { Facets.Add(field.Value); } } if (tags.Count() > 0) { foreach (var field in tags) { if (schema.Fields[field] != null && schema.Fields[field].IsFacetable) { Tags.Add(schema.Fields[field]); } } } else { foreach (var field in schema.Fields.Where(f => f.Value.IsFacetable)) { Tags.Add(field.Value); } } }
public DocumentSearchClient(IConfiguration configuration) { try { searchServiceName = configuration.GetSection("SearchServiceName")?.Value; apiKey = configuration.GetSection("SearchApiKey")?.Value; IndexName = configuration.GetSection("SearchIndexName")?.Value; telemetryClient.InstrumentationKey = configuration.GetSection("InstrumentationKey")?.Value; // Create an HTTP reference to the catalog index _searchClient = new SearchServiceClient(searchServiceName, new SearchCredentials(apiKey)); _indexClient = _searchClient.Indexes.GetClient(IndexName); Schema = new SearchSchema().AddFields(_searchClient.Indexes.Get(IndexName).Fields); Model = new SearchModel(Schema); } catch (Exception e) { throw new ArgumentException(e.Message.ToString()); } }
public DocumentSearchClient(IConfiguration configuration) { try { searchServiceName = configuration.GetSection("SearchServiceName")?.Value; apiKey = configuration.GetSection("SearchApiKey")?.Value; IndexName = configuration.GetSection("SearchIndexName")?.Value; idField = configuration.GetSection("KeyField")?.Value; telemetryClient.InstrumentationKey = configuration.GetSection("APPINSIGHTS_INSTRUMENTATIONKEY")?.Value; Console.WriteLine("APIKEY {0} Instrucmentation {1}", apiKey, telemetryClient.InstrumentationKey); // Create an HTTP reference to the catalog index _searchClient = new SearchServiceClient(searchServiceName, new SearchCredentials(apiKey)); _indexClient = _searchClient.Indexes.GetClient(IndexName); Schema = new SearchSchema().AddFields(_searchClient.Indexes.Get(IndexName).Fields); Model = new SearchModel(Schema); } catch (Exception e) { throw new ArgumentException(e.Message.ToString()); } }
public DocumentSearchClient(IConfiguration configuration) { try { searchServiceName = configuration.GetSection("SearchServiceName")?.Value; apiKey = configuration.GetSection("SearchApiKey")?.Value; IndexName = configuration.GetSection("SearchIndexName")?.Value; idField = configuration.GetSection("KeyField")?.Value; telemetryClient.InstrumentationKey = configuration.GetSection("InstrumentationKey")?.Value; // Create an HTTP reference to the catalog index _searchClient = new SearchServiceClient(searchServiceName, new SearchCredentials(apiKey)); _indexClient = _searchClient.Indexes.GetClient(IndexName); Schema = new SearchSchema().AddFields(_searchClient.Indexes.Get(IndexName).Fields); Model = new SearchModel(Schema); } catch (Exception e) { // If you get an exceptio here, most likely you have not set your // credentials correctly in appsettings.json throw new ArgumentException(e.Message.ToString()); } }