in Elastic.SemanticKernel.Connectors.Elasticsearch/ElasticsearchServiceCollectionExtensions.cs [81:101]
public static IServiceCollection AddElasticsearchVectorStoreRecordCollection<TKey, TRecord>(
this IServiceCollection services,
string collectionName,
ElasticsearchVectorStoreRecordCollectionOptions<TRecord>? options = default,
string? serviceId = default)
where TKey : notnull
{
services.AddKeyedTransient<IVectorStoreRecordCollection<TKey, TRecord>>(
serviceId,
(sp, _) =>
{
var elasticsearchClient = sp.GetRequiredService<ElasticsearchClient>();
var selectedOptions = options ?? sp.GetService<ElasticsearchVectorStoreRecordCollectionOptions<TRecord>>();
return (new ElasticsearchVectorStoreRecordCollection<TRecord>(elasticsearchClient, collectionName, selectedOptions) as IVectorStoreRecordCollection<TKey, TRecord>)!;
});
AddVectorizedSearch<TKey, TRecord>(services, serviceId);
return services;
}