UpsertVectorsAsync in the QdrantVectorDbClient class
UpsertVectorsAsync in the QdrantVectorDbClient class will not upsert. Because the code encounters some data in the database, it will jump out of the loop, so it is not added to the UpsertVector.
Below is the code: Microsoft.SemanticKernel.Connectors.Memory.Qdrant.QdrantVectorDbClient.UpsertVectorsAsync
foreach (var record in vectorData) { QdrantVectorRecord? existingRecord = await this.GetVectorsByIdAsync(collectionName, new[] { record.PointId }, false, cancellationToken).FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
if (existingRecord != null)
{
continue;
}
requestBuilder.UpsertVector(record);
}
@awharrison-28 can you take a look?
it also seems strange that update is skipped if its an existinf record, even though method is called "upsert" - we have scenarios where we are updating the embeddings for an existing record. Can this limitation also be removed as part of the fix, so it always updates existing records?