From a52826f41448fd5c549c859c7b7096211a0ad0c5 Mon Sep 17 00:00:00 2001
From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
Date: Tue, 8 Apr 2025 13:43:09 -0700
Subject: [PATCH 01/15] Added support for single vector data schema in Weaviate
---
.../WeaviateConstants.cs | 3 +
.../WeaviateModelBuilder.cs | 27 ++++---
.../WeaviateVectorStoreRecordCollection.cs | 9 ++-
...viateVectorStoreRecordCollectionOptions.cs | 8 ++
.../WeaviateVectorStoreRecordMapper.cs | 49 ++++++++++--
.../WeaviateGenericDataModelMapperTests.cs | 8 +-
...VectorStoreCollectionCreateMappingTests.cs | 12 +--
...rStoreRecordCollectionQueryBuilderTests.cs | 2 +-
.../WeaviateVectorStoreRecordMapperTests.cs | 77 ++++++++++++-------
9 files changed, 139 insertions(+), 56 deletions(-)
diff --git a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateConstants.cs b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateConstants.cs
index f98b4ec35fde..bcb4d1f53b56 100644
--- a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateConstants.cs
+++ b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateConstants.cs
@@ -16,6 +16,9 @@ internal sealed class WeaviateConstants
/// Reserved vector property name in Weaviate.
internal const string ReservedVectorPropertyName = "vectors";
+ /// Reserved single vector property name in Weaviate.
+ internal const string ReservedSingleVectorPropertyName = "vector";
+
/// Collection property name in Weaviate.
internal const string CollectionPropertyName = "class";
diff --git a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs
index eaac5cc83f44..967c9cd5738c 100644
--- a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs
+++ b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs
@@ -6,22 +6,25 @@
namespace Microsoft.SemanticKernel.Connectors.Weaviate;
-internal class WeaviateModelBuilder() : VectorStoreRecordJsonModelBuilder(s_modelBuildingOptions)
+internal class WeaviateModelBuilder(bool useSingleVector) : VectorStoreRecordJsonModelBuilder(GetModelBuildingOptions(useSingleVector))
{
- private static readonly VectorStoreRecordModelBuildingOptions s_modelBuildingOptions = new()
+ private static VectorStoreRecordModelBuildingOptions GetModelBuildingOptions(bool useSingleVector)
{
- RequiresAtLeastOneVector = false,
- SupportsMultipleKeys = false,
- SupportsMultipleVectors = true,
+ return new()
+ {
+ RequiresAtLeastOneVector = false,
+ SupportsMultipleKeys = false,
+ SupportsMultipleVectors = !useSingleVector,
- SupportedKeyPropertyTypes = [typeof(Guid)],
- SupportedDataPropertyTypes = s_supportedDataTypes,
- SupportedEnumerableDataPropertyElementTypes = s_supportedDataTypes,
- SupportedVectorPropertyTypes = s_supportedVectorTypes,
+ SupportedKeyPropertyTypes = [typeof(Guid)],
+ SupportedDataPropertyTypes = s_supportedDataTypes,
+ SupportedEnumerableDataPropertyElementTypes = s_supportedDataTypes,
+ SupportedVectorPropertyTypes = s_supportedVectorTypes,
- UsesExternalSerializer = true,
- ReservedKeyStorageName = WeaviateConstants.ReservedKeyPropertyName
- };
+ UsesExternalSerializer = true,
+ ReservedKeyStorageName = WeaviateConstants.ReservedKeyPropertyName
+ };
+ }
private static readonly HashSet s_supportedDataTypes =
[
diff --git a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollection.cs b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollection.cs
index 400c0d9f721b..9d871a5976f8 100644
--- a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollection.cs
+++ b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollection.cs
@@ -95,7 +95,8 @@ public WeaviateVectorStoreRecordCollection(
this.CollectionName = collectionName;
this._options = options ?? new();
this._apiKey = this._options.ApiKey;
- this._model = new WeaviateModelBuilder().Build(typeof(TRecord), this._options.VectorStoreRecordDefinition, s_jsonSerializerOptions);
+ this._model = new WeaviateModelBuilder(this._options.UseSingleVector)
+ .Build(typeof(TRecord), this._options.VectorStoreRecordDefinition, s_jsonSerializerOptions);
// Assign mapper.
this._mapper = this.InitializeMapper();
@@ -467,7 +468,11 @@ private IVectorStoreRecordMapper InitializeMapper()
return (mapper as IVectorStoreRecordMapper)!;
}
- return new WeaviateVectorStoreRecordMapper(this.CollectionName, this._model, s_jsonSerializerOptions);
+ return new WeaviateVectorStoreRecordMapper(
+ this.CollectionName,
+ this._options.UseSingleVector,
+ this._model,
+ s_jsonSerializerOptions);
}
#pragma warning restore CS0618
diff --git a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollectionOptions.cs b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollectionOptions.cs
index 7dff47f28d0e..7ef5b570387a 100644
--- a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollectionOptions.cs
+++ b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordCollectionOptions.cs
@@ -39,4 +39,12 @@ public sealed class WeaviateVectorStoreRecordCollectionOptions
/// This parameter is optional because authentication may be disabled in local clusters for testing purposes.
///
public string? ApiKey { get; set; } = null;
+
+ ///
+ /// Boolean flag which indicates whether a single vector data schema should be used in Weaviate collection.
+ /// By default it's , meaning that multiple vector data schema will be used (also known as named vectors).
+ /// .
+ /// When single vector data schema is enabled, only one vector property will be used with name "vector".
+ ///
+ public bool UseSingleVector { get; set; } = false;
}
diff --git a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordMapper.cs b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordMapper.cs
index 93edfdaadd96..f148ea2eb9b1 100644
--- a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordMapper.cs
+++ b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateVectorStoreRecordMapper.cs
@@ -13,17 +13,26 @@ internal sealed class WeaviateVectorStoreRecordMapper : IVectorStoreRec
#pragma warning restore CS0618
{
private readonly string _collectionName;
+ private readonly bool _useSingleVector;
private readonly VectorStoreRecordModel _model;
private readonly JsonSerializerOptions _jsonSerializerOptions;
+ private readonly string _vectorPropertyName;
+
public WeaviateVectorStoreRecordMapper(
string collectionName,
+ bool useSingleVector,
VectorStoreRecordModel model,
JsonSerializerOptions jsonSerializerOptions)
{
this._collectionName = collectionName;
+ this._useSingleVector = useSingleVector;
this._model = model;
this._jsonSerializerOptions = jsonSerializerOptions;
+
+ this._vectorPropertyName = useSingleVector ?
+ WeaviateConstants.ReservedSingleVectorPropertyName :
+ WeaviateConstants.ReservedVectorPropertyName;
}
public JsonObject MapFromDataToStorageModel(TRecord dataModel)
@@ -41,7 +50,7 @@ public JsonObject MapFromDataToStorageModel(TRecord dataModel)
// account e.g. naming policies. TemporaryStorageName gets populated in the model builder - containing that name - once VectorStoreModelBuildingOptions.ReservedKeyPropertyName is set
{ WeaviateConstants.ReservedKeyPropertyName, jsonNodeDataModel[this._model.KeyProperty.TemporaryStorageName!]!.DeepClone() },
{ WeaviateConstants.ReservedDataPropertyName, new JsonObject() },
- { WeaviateConstants.ReservedVectorPropertyName, new JsonObject() },
+ { this._vectorPropertyName, new JsonObject() },
};
// Populate data properties.
@@ -56,13 +65,26 @@ public JsonObject MapFromDataToStorageModel(TRecord dataModel)
}
// Populate vector properties.
- foreach (var property in this._model.VectorProperties)
+ if (this._useSingleVector)
{
- var node = jsonNodeDataModel[property.StorageName];
+ var vectorProperty = this._model.VectorProperty;
+ var node = jsonNodeDataModel[vectorProperty.StorageName];
if (node is not null)
{
- weaviateObjectModel[WeaviateConstants.ReservedVectorPropertyName]![property.StorageName] = node.DeepClone();
+ weaviateObjectModel[this._vectorPropertyName] = node.DeepClone();
+ }
+ }
+ else
+ {
+ foreach (var property in this._model.VectorProperties)
+ {
+ var node = jsonNodeDataModel[property.StorageName];
+
+ if (node is not null)
+ {
+ weaviateObjectModel[this._vectorPropertyName]![property.StorageName] = node.DeepClone();
+ }
}
}
@@ -97,13 +119,26 @@ public TRecord MapFromStorageToDataModel(JsonObject storageModel, StorageToDataM
// Populate vector properties.
if (options.IncludeVectors)
{
- foreach (var property in this._model.VectorProperties)
+ if (this._useSingleVector)
{
- var node = storageModel[WeaviateConstants.ReservedVectorPropertyName]?[property.StorageName];
+ var vectorProperty = this._model.VectorProperty;
+ var node = storageModel[this._vectorPropertyName];
if (node is not null)
{
- jsonNodeDataModel[property.StorageName] = node.DeepClone();
+ jsonNodeDataModel[vectorProperty.StorageName] = node.DeepClone();
+ }
+ }
+ else
+ {
+ foreach (var property in this._model.VectorProperties)
+ {
+ var node = storageModel[this._vectorPropertyName]?[property.StorageName];
+
+ if (node is not null)
+ {
+ jsonNodeDataModel[property.StorageName] = node.DeepClone();
+ }
}
}
}
diff --git a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateGenericDataModelMapperTests.cs b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateGenericDataModelMapperTests.cs
index 15193f410b4f..50b70b38ad4d 100644
--- a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateGenericDataModelMapperTests.cs
+++ b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateGenericDataModelMapperTests.cs
@@ -18,6 +18,8 @@ namespace SemanticKernel.Connectors.Weaviate.UnitTests;
///
public sealed class WeaviateGenericDataModelMapperTests
{
+ private const bool UseSingleVector = false;
+
private static readonly JsonSerializerOptions s_jsonSerializerOptions = new()
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
@@ -29,7 +31,7 @@ public sealed class WeaviateGenericDataModelMapperTests
}
};
- private static readonly VectorStoreRecordModel s_model = new WeaviateModelBuilder()
+ private static readonly VectorStoreRecordModel s_model = new WeaviateModelBuilder(UseSingleVector)
.Build(
typeof(VectorStoreGenericDataModel),
new VectorStoreRecordDefinition
@@ -351,7 +353,7 @@ public void MapFromDataToStorageModelSkipsMissingProperties()
]
};
- var model = new WeaviateModelBuilder().Build(typeof(VectorStoreGenericDataModel), recordDefinition, s_jsonSerializerOptions);
+ var model = new WeaviateModelBuilder(UseSingleVector).Build(typeof(VectorStoreGenericDataModel), recordDefinition, s_jsonSerializerOptions);
var key = new Guid("55555555-5555-5555-5555-555555555555");
@@ -382,7 +384,7 @@ public void MapFromStorageToDataModelSkipsMissingProperties()
]
};
- var model = new WeaviateModelBuilder().Build(typeof(VectorStoreGenericDataModel), recordDefinition, s_jsonSerializerOptions);
+ var model = new WeaviateModelBuilder(UseSingleVector).Build(typeof(VectorStoreGenericDataModel), recordDefinition, s_jsonSerializerOptions);
var key = new Guid("55555555-5555-5555-5555-555555555555");
diff --git a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs
index 0203e726c145..6b3be9496b97 100644
--- a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs
+++ b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs
@@ -14,11 +14,13 @@ namespace SemanticKernel.Connectors.Weaviate.UnitTests;
///
public sealed class WeaviateVectorStoreCollectionCreateMappingTests
{
+ private const bool UseSingleVector = false;
+
[Fact]
public void ItThrowsExceptionWithInvalidIndexKind()
{
// Arrange
- var model = new WeaviateModelBuilder()
+ var model = new WeaviateModelBuilder(UseSingleVector)
.Build(
typeof(VectorStoreGenericDataModel),
new VectorStoreRecordDefinition
@@ -41,7 +43,7 @@ public void ItThrowsExceptionWithInvalidIndexKind()
public void ItReturnsCorrectSchemaWithValidIndexKind(string indexKind, string expectedIndexKind)
{
// Arrange
- var model = new WeaviateModelBuilder()
+ var model = new WeaviateModelBuilder(UseSingleVector)
.Build(
typeof(VectorStoreGenericDataModel),
new VectorStoreRecordDefinition
@@ -65,7 +67,7 @@ public void ItReturnsCorrectSchemaWithValidIndexKind(string indexKind, string ex
public void ItThrowsExceptionWithInvalidDistanceFunction()
{
// Arrange
- var model = new WeaviateModelBuilder()
+ var model = new WeaviateModelBuilder(UseSingleVector)
.Build(
typeof(VectorStoreGenericDataModel),
new VectorStoreRecordDefinition
@@ -90,7 +92,7 @@ public void ItThrowsExceptionWithInvalidDistanceFunction()
public void ItReturnsCorrectSchemaWithValidDistanceFunction(string distanceFunction, string expectedDistanceFunction)
{
// Arrange
- var model = new WeaviateModelBuilder()
+ var model = new WeaviateModelBuilder(UseSingleVector)
.Build(
typeof(VectorStoreGenericDataModel),
new VectorStoreRecordDefinition
@@ -163,7 +165,7 @@ public void ItReturnsCorrectSchemaWithValidDistanceFunction(string distanceFunct
public void ItMapsPropertyCorrectly(Type propertyType, string expectedPropertyType)
{
// Arrange
- var model = new WeaviateModelBuilder()
+ var model = new WeaviateModelBuilder(UseSingleVector)
.Build(
typeof(VectorStoreGenericDataModel),
new VectorStoreRecordDefinition
diff --git a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordCollectionQueryBuilderTests.cs b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordCollectionQueryBuilderTests.cs
index 27cf9dc4d82c..446b0b56ed2d 100644
--- a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordCollectionQueryBuilderTests.cs
+++ b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordCollectionQueryBuilderTests.cs
@@ -31,7 +31,7 @@ public sealed class WeaviateVectorStoreRecordCollectionQueryBuilderTests
}
};
- private readonly VectorStoreRecordModel _model = new WeaviateModelBuilder()
+ private readonly VectorStoreRecordModel _model = new WeaviateModelBuilder(useSingleVector: false)
.Build(
typeof(VectorStoreGenericDataModel),
new()
diff --git a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordMapperTests.cs b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordMapperTests.cs
index f624599f5478..c313ea76c141 100644
--- a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordMapperTests.cs
+++ b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreRecordMapperTests.cs
@@ -28,27 +28,10 @@ public sealed class WeaviateVectorStoreRecordMapperTests
}
};
- private readonly WeaviateVectorStoreRecordMapper _sut =
- new(
- "CollectionName",
- new WeaviateModelBuilder()
- .Build(
- typeof(VectorStoreGenericDataModel),
- new VectorStoreRecordDefinition
- {
- Properties =
- [
- new VectorStoreRecordKeyProperty("HotelId", typeof(Guid)),
- new VectorStoreRecordDataProperty("HotelName", typeof(string)),
- new VectorStoreRecordDataProperty("Tags", typeof(List)),
- new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(ReadOnlyMemory))
- ]
- },
- s_jsonSerializerOptions),
- s_jsonSerializerOptions);
-
- [Fact]
- public void MapFromDataToStorageModelReturnsValidObject()
+ [Theory]
+ [InlineData(true)]
+ [InlineData(false)]
+ public void MapFromDataToStorageModelReturnsValidObject(bool useSingleVector)
{
// Arrange
var hotel = new WeaviateHotel
@@ -59,8 +42,10 @@ public void MapFromDataToStorageModelReturnsValidObject()
DescriptionEmbedding = new ReadOnlyMemory([1f, 2f, 3f])
};
+ var sut = GetMapper(useSingleVector);
+
// Act
- var document = this._sut.MapFromDataToStorageModel(hotel);
+ var document = sut.MapFromDataToStorageModel(hotel);
// Assert
Assert.NotNull(document);
@@ -68,11 +53,16 @@ public void MapFromDataToStorageModelReturnsValidObject()
Assert.Equal("55555555-5555-5555-5555-555555555555", document["id"]!.GetValue());
Assert.Equal("Test Name", document["properties"]!["hotelName"]!.GetValue());
Assert.Equal(["tag1", "tag2"], document["properties"]!["tags"]!.AsArray().Select(l => l!.GetValue()));
+
+ var vectorNode = useSingleVector ? document["vector"] : document["vectors"]!["descriptionEmbedding"];
+
Assert.Equal([1f, 2f, 3f], document["vectors"]!["descriptionEmbedding"]!.AsArray().Select(l => l!.GetValue()));
}
- [Fact]
- public void MapFromStorageToDataModelReturnsValidObject()
+ [Theory]
+ [InlineData(true)]
+ [InlineData(false)]
+ public void MapFromStorageToDataModelReturnsValidObject(bool useSingleVector)
{
// Arrange
var document = new JsonObject
@@ -84,10 +74,22 @@ public void MapFromStorageToDataModelReturnsValidObject()
document["properties"]!["hotelName"] = "Test Name";
document["properties"]!["tags"] = new JsonArray(new List { "tag1", "tag2" }.Select(l => JsonValue.Create(l)).ToArray());
- document["vectors"]!["descriptionEmbedding"] = new JsonArray(new List { 1f, 2f, 3f }.Select(l => JsonValue.Create(l)).ToArray());
+
+ var vectorNode = new JsonArray(new List { 1f, 2f, 3f }.Select(l => JsonValue.Create(l)).ToArray());
+
+ if (useSingleVector)
+ {
+ document["vector"] = vectorNode;
+ }
+ else
+ {
+ document["vectors"]!["descriptionEmbedding"] = vectorNode;
+ }
+
+ var sut = GetMapper(useSingleVector);
// Act
- var hotel = this._sut.MapFromStorageToDataModel(document, new() { IncludeVectors = true });
+ var hotel = sut.MapFromStorageToDataModel(document, new() { IncludeVectors = true });
// Assert
Assert.NotNull(hotel);
@@ -97,4 +99,27 @@ public void MapFromStorageToDataModelReturnsValidObject()
Assert.Equal(["tag1", "tag2"], hotel.Tags);
Assert.True(new ReadOnlyMemory([1f, 2f, 3f]).Span.SequenceEqual(hotel.DescriptionEmbedding!.Value.Span));
}
+
+ #region private
+
+ private static WeaviateVectorStoreRecordMapper GetMapper(bool useSingleVector) => new(
+ "CollectionName",
+ useSingleVector,
+ new WeaviateModelBuilder(useSingleVector)
+ .Build(
+ typeof(VectorStoreGenericDataModel),
+ new VectorStoreRecordDefinition
+ {
+ Properties =
+ [
+ new VectorStoreRecordKeyProperty("HotelId", typeof(Guid)),
+ new VectorStoreRecordDataProperty("HotelName", typeof(string)),
+ new VectorStoreRecordDataProperty("Tags", typeof(List)),
+ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(ReadOnlyMemory))
+ ]
+ },
+ s_jsonSerializerOptions),
+ s_jsonSerializerOptions);
+
+ #endregion
}
From cfe5f47df94759f184ecea657386304b16b2eaa6 Mon Sep 17 00:00:00 2001
From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
Date: Tue, 8 Apr 2025 14:13:43 -0700
Subject: [PATCH 02/15] Updated unit tests
---
.../WeaviateModelBuilder.cs | 11 +++++++++++
...WeaviateVectorStoreCollectionCreateMappingTests.cs | 2 --
.../WeaviateVectorStoreRecordMapperTests.cs | 2 +-
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs
index 967c9cd5738c..d7556713d07c 100644
--- a/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs
+++ b/dotnet/src/Connectors/Connectors.Memory.Weaviate/WeaviateModelBuilder.cs
@@ -30,16 +30,27 @@ private static VectorStoreRecordModelBuildingOptions GetModelBuildingOptions(boo
[
typeof(string),
typeof(bool),
+ typeof(bool?),
typeof(int),
+ typeof(int?),
typeof(long),
+ typeof(long?),
typeof(short),
+ typeof(short?),
typeof(byte),
+ typeof(byte?),
typeof(float),
+ typeof(float?),
typeof(double),
+ typeof(double?),
typeof(decimal),
+ typeof(decimal?),
typeof(DateTime),
+ typeof(DateTime?),
typeof(DateTimeOffset),
+ typeof(DateTimeOffset?),
typeof(Guid),
+ typeof(Guid?)
];
internal static readonly HashSet s_supportedVectorTypes =
diff --git a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs
index 6b3be9496b97..2572be1192ce 100644
--- a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs
+++ b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateVectorStoreCollectionCreateMappingTests.cs
@@ -160,8 +160,6 @@ public void ItReturnsCorrectSchemaWithValidDistanceFunction(string distanceFunct
[InlineData(typeof(bool?), "boolean")]
[InlineData(typeof(List), "boolean[]")]
[InlineData(typeof(List), "boolean[]")]
- [InlineData(typeof(object), "object")]
- [InlineData(typeof(List