in Elastic.SemanticKernel.Connectors.Elasticsearch/ElasticsearchServiceCollectionExtensions.cs [26:43]
public static IServiceCollection AddElasticsearchVectorStore(this IServiceCollection services, ElasticsearchVectorStoreOptions? options = default, string? serviceId = default)
{
// If we are not constructing the ElasticsearchClient, add the IVectorStore as transient, since we
// cannot make assumptions about how ElasticsearchClient is being managed.
services.AddKeyedTransient<IVectorStore>(
serviceId,
(sp, _) =>
{
var elasticsearchClient = sp.GetRequiredService<ElasticsearchClient>();
var selectedOptions = options ?? sp.GetService<ElasticsearchVectorStoreOptions>();
return new ElasticsearchVectorStore(
elasticsearchClient,
selectedOptions);
});
return services;
}