Skip to content

Commit c58713a

Browse files
authored
Bugfix/vector hash idx creation (#424)
1 parent cf41ed7 commit c58713a

File tree

11 files changed

+53
-18
lines changed

11 files changed

+53
-18
lines changed

.github/workflows/dotnet-core.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
steps:
1313
- uses: actions/checkout@v2
14-
with:
15-
lfs: true
14+
- name: fetch-models
15+
run: sh fetch-models.sh
1616
- name: execute
1717
run: docker-compose -f ./docker/docker-compose.yaml run dotnet

fetch-models.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
3+
curl -o ./src/Redis.OM.Vectorizers.AllMiniLML6V2/Resources/model.onnx https://storage.googleapis.com/slorello/model.onnx
4+
5+
curl -o ./src/Redis.OM.Vectorizers.AllMiniLML6V2/Resources/vocab.txt https://storage.googleapis.com/slorello/vocab.txt
6+
7+
curl -o ./src/Redis.OM.Vectorizers.Resnet18/Resources/ResNet18Onnx/ResNet18.onnx https://storage.googleapis.com/slorello/ResNet18.onnx
8+
9+
curl -o ./src/Redis.OM.Vectorizers.Resnet18/Resources/ResNetPrepOnnx/ResNetPreprocess.onnx https://storage.googleapis.com/slorello/ResNetPreprocess.onnx

src/Redis.OM.Vectorizers.AllMiniLML6V2/Redis.OM.Vectorizers.AllMiniLML6V2.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<RootNamespace>Redis.OM.Vectorizers.AllMiniLML6V2</RootNamespace>
8-
<PackageVersion>0.6.0</PackageVersion>
9-
<Version>0.6.0</Version>
10-
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.0</PackageReleaseNotes>
8+
<PackageVersion>0.6.1</PackageVersion>
9+
<Version>0.6.1</Version>
10+
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.1</PackageReleaseNotes>
1111
<Description>Sentence Vectorizer for Redis OM .NET using all-MiniLM-L6-v2</Description>
1212
<Title>Redis OM all-MiniLM-L6-v2 Vectorizers</Title>
1313
<Authors>Steve Lorello</Authors>

src/Redis.OM.Vectorizers.Resnet18/Redis.OM.Vectorizers.Resnet18.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
<ImplicitUsings>enable</ImplicitUsings>
55
<Nullable>enable</Nullable>
66
<RootNamespace>Redis.OM.Vectorizers.Resnet18</RootNamespace>
7-
<PackageVersion>0.6.0</PackageVersion>
8-
<Version>0.6.0</Version>
9-
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.0</PackageReleaseNotes>
7+
<PackageVersion>0.6.1</PackageVersion>
8+
<Version>0.6.1</Version>
9+
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.1</PackageReleaseNotes>
1010
<Description>Resnet 18 Vectorizers for Redis OM .NET.</Description>
1111
<Title>Redis OM Resnet 18 Vectorizers</Title>
1212
<Authors>Steve Lorello</Authors>

src/Redis.OM.Vectorizers/Redis.OM.Vectorizers.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<RootNamespace>Redis.OM</RootNamespace>
8-
<PackageVersion>0.6.0</PackageVersion>
9-
<Version>0.6.0</Version>
10-
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.0</PackageReleaseNotes>
8+
<PackageVersion>0.6.1</PackageVersion>
9+
<Version>0.6.1</Version>
10+
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.1</PackageReleaseNotes>
1111
<Description>Core Vectorizers for Redis OM .NET.</Description>
1212
<Title>Redis OM Vectorizers</Title>
1313
<Authors>Steve Lorello</Authors>

src/Redis.OM/Modeling/RedisSchemaField.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,13 @@ internal static string[] SerializeArgs(this PropertyInfo info)
119119
}
120120
}
121121

122-
var ret = new List<string> { !string.IsNullOrEmpty(attr.PropertyName) ? $"attr.PropertyName{suffix}" : $"{info.Name}{suffix}" };
122+
var ret = new List<string> { !string.IsNullOrEmpty(attr.PropertyName) ? $"{attr.PropertyName}{suffix}" : $"{info.Name}{suffix}" };
123+
if (!string.IsNullOrEmpty(suffix))
124+
{
125+
ret.Add("AS");
126+
ret.Add(!string.IsNullOrEmpty(attr.PropertyName) ? attr.PropertyName : info.Name);
127+
}
128+
123129
var innerType = Nullable.GetUnderlyingType(info.PropertyType);
124130
ret.AddRange(CommonSerialization(attr, innerType ?? info.PropertyType, info));
125131
return ret.ToArray();

src/Redis.OM/Redis.OM.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
<RootNamespace>Redis.OM</RootNamespace>
77
<Nullable>enable</Nullable>
88
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
9-
<PackageVersion>0.6.0</PackageVersion>
10-
<Version>0.6.0</Version>
11-
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.0</PackageReleaseNotes>
9+
<PackageVersion>0.6.1</PackageVersion>
10+
<Version>0.6.1</Version>
11+
<PackageReleaseNotes>https://github.com/redis/redis-om-dotnet/releases/tag/v0.6.1</PackageReleaseNotes>
1212
<Description>Object Mapping and More for Redis</Description>
1313
<Title>Redis OM</Title>
1414
<Authors>Steve Lorello</Authors>

src/Redis.OM/RedisObjectHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ private static string SendToJson(IDictionary<string, RedisReply> hash, Type t)
639639
}
640640

641641
var valueStr = $"[{arrString}]";
642-
ret += $"\"Vector\":{valueStr}}}";
642+
ret += $"\"Vector\":{valueStr}}},";
643643
}
644644
}
645645

test/Redis.OM.Unit.Tests/RediSearchTests/VectorTests/HuggingFaceVectors.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Redis.OM.Unit.Tests;
66

7-
[Document(StorageType = StorageType.Json)]
7+
[Document]
88
public class HuggingFaceVectors
99
{
1010
[RedisIdField]

test/Redis.OM.Unit.Tests/RediSearchTests/VectorTests/VectorFunctionalTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,26 @@ public void ScoresOnHash()
236236
Assert.Equal(0, res.VectorScores.NearestNeighborsScore);
237237
}
238238

239+
[Fact]
240+
public void ScoresOnHashVectorizer()
241+
{
242+
_connection.DropIndexAndAssociatedRecords(typeof(ObjectWithVectorHash));
243+
_connection.CreateIndex(typeof(ObjectWithVectorHash));
244+
var simpleHnswVector = Vector.Of(Enumerable.Range(0, 10).Select(x => (double)x).ToArray());
245+
var simpleVectorizedVector = Vector.Of("foo");
246+
var obj = new ObjectWithVectorHash
247+
{
248+
Id = "helloWorld",
249+
SimpleHnswVector = simpleHnswVector,
250+
SimpleVectorizedVector = simpleVectorizedVector,
251+
};
252+
var collection = new RedisCollection<ObjectWithVectorHash>(_connection);
253+
collection.Insert(obj);
254+
var res = collection.NearestNeighbors(x => x.SimpleVectorizedVector, 5, "foo").First();
255+
256+
Assert.Equal(0, res.VectorScores.NearestNeighborsScore);
257+
}
258+
239259
[Fact]
240260
public void HybridQueryTest()
241261
{

0 commit comments

Comments
 (0)