Skip to content

Commit d53f1ab

Browse files
committed
fix PR nits
1 parent 65eb889 commit d53f1ab

File tree

11 files changed

+381
-432
lines changed

11 files changed

+381
-432
lines changed

src/Directory.Build.props

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@
1010
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="all" />
1111
<PackageReference Include="Nerdbank.GitVersioning" PrivateAssets="all" Condition=" '$(DEVCONTAINER)' != 'true' " />
1212
</ItemGroup>
13+
<ItemGroup>
14+
<Analyzer Include="..\..\eng\StackExchange.Redis.Build\bin\$(Configuration)\netstandard2.0\StackExchange.Redis.Build.dll" />
15+
</ItemGroup>
1316
</Project>

src/StackExchange.Redis/Interfaces/IDatabase.VectorSets.cs

Lines changed: 3 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -182,63 +182,13 @@ bool VectorSetSetAttributesJson(
182182
/// Find similar vectors using vector similarity search.
183183
/// </summary>
184184
/// <param name="key">The key of the vectorset.</param>
185-
/// <param name="vector">The query vector.</param>
186-
/// <param name="count">The number of similar vectors to return (COUNT parameter).</param>
187-
/// <param name="withScores">Whether to include similarity scores in the results (WITHSCORES parameter).</param>
188-
/// <param name="withAttributes">Whether to include JSON attributes in the results (WITHATTRIBS parameter).</param>
189-
/// <param name="epsilon">Optional similarity threshold - only return elements with similarity >= (1 - epsilon) (EPSILON parameter).</param>
190-
/// <param name="searchExplorationFactor">Optional search exploration factor for better recall (EF parameter).</param>
191-
/// <param name="filterExpression">Optional filter expression to restrict results (FILTER parameter); <see href="https://redis.io/docs/latest/develop/data-types/vector-sets/filtered-search/"/>.</param>
192-
/// <param name="maxFilteringEffort">Optional maximum filtering attempts (FILTER-EF parameter).</param>
193-
/// <param name="useExactSearch">Whether to use exact linear scan instead of HNSW (TRUTH parameter).</param>
194-
/// <param name="disableThreading">Whether to run search in main thread (NOTHREAD parameter).</param>
185+
/// <param name="query">The query to execute.</param>
195186
/// <param name="flags">The flags to use for this operation.</param>
196187
/// <returns>Similar vectors with their similarity scores.</returns>
197188
/// <remarks><seealso href="https://redis.io/commands/vsim"/></remarks>
198189
[Experimental(Experiments.VectorSets, UrlFormat = Experiments.UrlFormat)]
199-
Lease<VectorSetSimilaritySearchResult>? VectorSetSimilaritySearchByVector(
190+
Lease<VectorSetSimilaritySearchResult>? VectorSetSimilaritySearch(
200191
RedisKey key,
201-
ReadOnlyMemory<float> vector,
202-
int? count = null,
203-
bool withScores = false,
204-
bool withAttributes = false,
205-
double? epsilon = null,
206-
int? searchExplorationFactor = null,
207-
string? filterExpression = null,
208-
int? maxFilteringEffort = null,
209-
bool useExactSearch = false,
210-
bool disableThreading = false,
211-
CommandFlags flags = CommandFlags.None);
212-
213-
/// <summary>
214-
/// Find similar vectors to an existing member.
215-
/// </summary>
216-
/// <param name="key">The key of the vectorset.</param>
217-
/// <param name="member">The member to find similar vectors for.</param>
218-
/// <param name="count">The number of similar vectors to return (COUNT parameter).</param>
219-
/// <param name="withScores">Whether to include similarity scores in the results (WITHSCORES parameter).</param>
220-
/// <param name="withAttributes">Whether to include JSON attributes in the results (WITHATTRIBS parameter).</param>
221-
/// <param name="epsilon">Optional similarity threshold - only return elements with similarity >= (1 - epsilon) (EPSILON parameter).</param>
222-
/// <param name="searchExplorationFactor">Optional search exploration factor for better recall (EF parameter).</param>
223-
/// <param name="filterExpression">Optional filter expression to restrict results (FILTER parameter).</param>
224-
/// <param name="maxFilteringEffort">Optional maximum filtering attempts (FILTER-EF parameter).</param>
225-
/// <param name="useExactSearch">Whether to use exact linear scan instead of HNSW (TRUTH parameter).</param>
226-
/// <param name="disableThreading">Whether to run search in main thread (NOTHREAD parameter).</param>
227-
/// <param name="flags">The flags to use for this operation.</param>
228-
/// <returns>Similar vectors with their similarity scores.</returns>
229-
/// <remarks><seealso href="https://redis.io/commands/vsim"/></remarks>
230-
[Experimental(Experiments.VectorSets, UrlFormat = Experiments.UrlFormat)]
231-
Lease<VectorSetSimilaritySearchResult>? VectorSetSimilaritySearchByMember(
232-
RedisKey key,
233-
RedisValue member,
234-
int? count = null,
235-
bool withScores = false,
236-
bool withAttributes = false,
237-
double? epsilon = null,
238-
int? searchExplorationFactor = null,
239-
string? filterExpression = null,
240-
int? maxFilteringEffort = null,
241-
bool useExactSearch = false,
242-
bool disableThreading = false,
192+
VectorSetSimilaritySearchRequest query,
243193
CommandFlags flags = CommandFlags.None);
244194
}

src/StackExchange.Redis/Interfaces/IDatabaseAsync.VectorSets.cs

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -90,35 +90,10 @@ Task<bool> VectorSetSetAttributesJsonAsync(
9090
string jsonAttributes,
9191
CommandFlags flags = CommandFlags.None);
9292

93-
/// <inheritdoc cref="IDatabase.VectorSetSimilaritySearchByVector(RedisKey, ReadOnlyMemory{float}, int?, bool, bool, double?, int?, string?, int?, bool, bool, CommandFlags)"/>
93+
/// <inheritdoc cref="IDatabase.VectorSetSimilaritySearch(RedisKey, VectorSetSimilaritySearchRequest, CommandFlags)"/>
9494
[Experimental(Experiments.VectorSets, UrlFormat = Experiments.UrlFormat)]
95-
Task<Lease<VectorSetSimilaritySearchResult>?> VectorSetSimilaritySearchByVectorAsync(
95+
Task<Lease<VectorSetSimilaritySearchResult>?> VectorSetSimilaritySearchAsync(
9696
RedisKey key,
97-
ReadOnlyMemory<float> vector,
98-
int? count = null,
99-
bool withScores = false,
100-
bool withAttributes = false,
101-
double? epsilon = null,
102-
int? searchExplorationFactor = null,
103-
string? filterExpression = null,
104-
int? maxFilteringEffort = null,
105-
bool useExactSearch = false,
106-
bool disableThreading = false,
107-
CommandFlags flags = CommandFlags.None);
108-
109-
/// <inheritdoc cref="IDatabase.VectorSetSimilaritySearchByMember(RedisKey, RedisValue, int?, bool, bool, double?, int?, string?, int?, bool, bool, CommandFlags)"/>
110-
[Experimental(Experiments.VectorSets, UrlFormat = Experiments.UrlFormat)]
111-
Task<Lease<VectorSetSimilaritySearchResult>?> VectorSetSimilaritySearchByMemberAsync(
112-
RedisKey key,
113-
RedisValue member,
114-
int? count = null,
115-
bool withScores = false,
116-
bool withAttributes = false,
117-
double? epsilon = null,
118-
int? searchExplorationFactor = null,
119-
string? filterExpression = null,
120-
int? maxFilteringEffort = null,
121-
bool useExactSearch = false,
122-
bool disableThreading = false,
97+
VectorSetSimilaritySearchRequest query,
12398
CommandFlags flags = CommandFlags.None);
12499
}

src/StackExchange.Redis/KeyspaceIsolation/KeyPrefixed.VectorSets.cs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -58,33 +58,9 @@ public Task<bool> VectorSetRemoveAsync(RedisKey key, RedisValue member, CommandF
5858
public Task<bool> VectorSetSetAttributesJsonAsync(RedisKey key, RedisValue member, string jsonAttributes, CommandFlags flags = CommandFlags.None) =>
5959
Inner.VectorSetSetAttributesJsonAsync(ToInner(key), member, jsonAttributes, flags);
6060

61-
public Task<Lease<VectorSetSimilaritySearchResult>?> VectorSetSimilaritySearchByVectorAsync(
61+
public Task<Lease<VectorSetSimilaritySearchResult>?> VectorSetSimilaritySearchAsync(
6262
RedisKey key,
63-
ReadOnlyMemory<float> vector,
64-
int? count = null,
65-
bool withScores = false,
66-
bool withAttributes = false,
67-
double? epsilon = null,
68-
int? searchExplorationFactor = null,
69-
string? filterExpression = null,
70-
int? maxFilteringEffort = null,
71-
bool useExactSearch = false,
72-
bool disableThreading = false,
63+
VectorSetSimilaritySearchRequest query,
7364
CommandFlags flags = CommandFlags.None) =>
74-
Inner.VectorSetSimilaritySearchByVectorAsync(ToInner(key), vector, count, withScores, withAttributes, epsilon, searchExplorationFactor, filterExpression, maxFilteringEffort, useExactSearch, disableThreading, flags);
75-
76-
public Task<Lease<VectorSetSimilaritySearchResult>?> VectorSetSimilaritySearchByMemberAsync(
77-
RedisKey key,
78-
RedisValue member,
79-
int? count = null,
80-
bool withScores = false,
81-
bool withAttributes = false,
82-
double? epsilon = null,
83-
int? searchExplorationFactor = null,
84-
string? filterExpression = null,
85-
int? maxFilteringEffort = null,
86-
bool useExactSearch = false,
87-
bool disableThreading = false,
88-
CommandFlags flags = CommandFlags.None) =>
89-
Inner.VectorSetSimilaritySearchByMemberAsync(ToInner(key), member, count, withScores, withAttributes, epsilon, searchExplorationFactor, filterExpression, maxFilteringEffort, useExactSearch, disableThreading, flags);
65+
Inner.VectorSetSimilaritySearchAsync(ToInner(key), query, flags);
9066
}

src/StackExchange.Redis/KeyspaceIsolation/KeyPrefixedDatabase.VectorSets.cs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -55,33 +55,9 @@ public bool VectorSetRemove(RedisKey key, RedisValue member, CommandFlags flags
5555
public bool VectorSetSetAttributesJson(RedisKey key, RedisValue member, string jsonAttributes, CommandFlags flags = CommandFlags.None) =>
5656
Inner.VectorSetSetAttributesJson(ToInner(key), member, jsonAttributes, flags);
5757

58-
public Lease<VectorSetSimilaritySearchResult>? VectorSetSimilaritySearchByVector(
58+
public Lease<VectorSetSimilaritySearchResult>? VectorSetSimilaritySearch(
5959
RedisKey key,
60-
ReadOnlyMemory<float> vector,
61-
int? count = null,
62-
bool withScores = false,
63-
bool withAttributes = false,
64-
double? epsilon = null,
65-
int? searchExplorationFactor = null,
66-
string? filterExpression = null,
67-
int? maxFilteringEffort = null,
68-
bool useExactSearch = false,
69-
bool disableThreading = false,
60+
VectorSetSimilaritySearchRequest query,
7061
CommandFlags flags = CommandFlags.None) =>
71-
Inner.VectorSetSimilaritySearchByVector(ToInner(key), vector, count, withScores, withAttributes, epsilon, searchExplorationFactor, filterExpression, maxFilteringEffort, useExactSearch, disableThreading, flags);
72-
73-
public Lease<VectorSetSimilaritySearchResult>? VectorSetSimilaritySearchByMember(
74-
RedisKey key,
75-
RedisValue member,
76-
int? count = null,
77-
bool withScores = false,
78-
bool withAttributes = false,
79-
double? epsilon = null,
80-
int? searchExplorationFactor = null,
81-
string? filterExpression = null,
82-
int? maxFilteringEffort = null,
83-
bool useExactSearch = false,
84-
bool disableThreading = false,
85-
CommandFlags flags = CommandFlags.None) =>
86-
Inner.VectorSetSimilaritySearchByMember(ToInner(key), member, count, withScores, withAttributes, epsilon, searchExplorationFactor, filterExpression, maxFilteringEffort, useExactSearch, disableThreading, flags);
62+
Inner.VectorSetSimilaritySearch(ToInner(key), query, flags);
8763
}

src/StackExchange.Redis/PublicAPI/PublicAPI.Unshipped.txt

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
#nullable enable
2+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest
3+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Count.get -> int?
4+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Count.set -> void
5+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.DisableThreading.get -> bool
6+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.DisableThreading.set -> void
7+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Epsilon.get -> double?
8+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Epsilon.set -> void
9+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.FilterExpression.get -> string?
10+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.FilterExpression.set -> void
11+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.MaxFilteringEffort.get -> int?
12+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.MaxFilteringEffort.set -> void
13+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Member.get -> StackExchange.Redis.RedisValue
14+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Member.set -> void
15+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.SearchExplorationFactor.get -> int?
16+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.SearchExplorationFactor.set -> void
17+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.UseExactSearch.get -> bool
18+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.UseExactSearch.set -> void
19+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Vector.get -> System.ReadOnlyMemory<float>
20+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.Vector.set -> void
21+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.VectorSetSimilaritySearchRequest() -> void
22+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.WithAttributes.get -> bool
23+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.WithAttributes.set -> void
24+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.WithScores.get -> bool
25+
[SER001]StackExchange.Redis.VectorSetSimilaritySearchRequest.WithScores.set -> void
226
[SER001]override StackExchange.Redis.VectorSetLink.ToString() -> string!
327
[SER001]override StackExchange.Redis.VectorSetSimilaritySearchResult.ToString() -> string!
428
[SER001]StackExchange.Redis.IDatabase.VectorSetAdd(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue element, System.ReadOnlyMemory<float> values, int? reducedDimensions = null, StackExchange.Redis.VectorSetQuantization quantization = StackExchange.Redis.VectorSetQuantization.Int8, int? buildExplorationFactor = null, int? maxConnections = null, bool useCheckAndSet = false, string? attributesJson = null, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> bool
@@ -14,8 +38,7 @@
1438
[SER001]StackExchange.Redis.IDatabase.VectorSetRandomMembers(StackExchange.Redis.RedisKey key, long count, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> StackExchange.Redis.RedisValue[]!
1539
[SER001]StackExchange.Redis.IDatabase.VectorSetRemove(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> bool
1640
[SER001]StackExchange.Redis.IDatabase.VectorSetSetAttributesJson(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, string! jsonAttributes, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> bool
17-
[SER001]StackExchange.Redis.IDatabase.VectorSetSimilaritySearchByMember(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, int? count = null, bool withScores = false, bool withAttributes = false, double? epsilon = null, int? searchExplorationFactor = null, string? filterExpression = null, int? maxFilteringEffort = null, bool useExactSearch = false, bool disableThreading = false, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> StackExchange.Redis.Lease<StackExchange.Redis.VectorSetSimilaritySearchResult>?
18-
[SER001]StackExchange.Redis.IDatabase.VectorSetSimilaritySearchByVector(StackExchange.Redis.RedisKey key, System.ReadOnlyMemory<float> vector, int? count = null, bool withScores = false, bool withAttributes = false, double? epsilon = null, int? searchExplorationFactor = null, string? filterExpression = null, int? maxFilteringEffort = null, bool useExactSearch = false, bool disableThreading = false, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> StackExchange.Redis.Lease<StackExchange.Redis.VectorSetSimilaritySearchResult>?
41+
[SER001]StackExchange.Redis.IDatabase.VectorSetSimilaritySearch(StackExchange.Redis.RedisKey key, StackExchange.Redis.VectorSetSimilaritySearchRequest! query, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> StackExchange.Redis.Lease<StackExchange.Redis.VectorSetSimilaritySearchResult>?
1942
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetAddAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue element, System.ReadOnlyMemory<float> values, int? reducedDimensions = null, StackExchange.Redis.VectorSetQuantization quantization = StackExchange.Redis.VectorSetQuantization.Int8, int? buildExplorationFactor = null, int? maxConnections = null, bool useCheckAndSet = false, string? attributesJson = null, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<bool>!
2043
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetContainsAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<bool>!
2144
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetDimensionAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<int>!
@@ -29,8 +52,7 @@
2952
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetRandomMembersAsync(StackExchange.Redis.RedisKey key, long count, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<StackExchange.Redis.RedisValue[]!>!
3053
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetRemoveAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<bool>!
3154
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetSetAttributesJsonAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, string! jsonAttributes, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<bool>!
32-
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetSimilaritySearchByMemberAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, int? count = null, bool withScores = false, bool withAttributes = false, double? epsilon = null, int? searchExplorationFactor = null, string? filterExpression = null, int? maxFilteringEffort = null, bool useExactSearch = false, bool disableThreading = false, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<StackExchange.Redis.Lease<StackExchange.Redis.VectorSetSimilaritySearchResult>?>!
33-
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetSimilaritySearchByVectorAsync(StackExchange.Redis.RedisKey key, System.ReadOnlyMemory<float> vector, int? count = null, bool withScores = false, bool withAttributes = false, double? epsilon = null, int? searchExplorationFactor = null, string? filterExpression = null, int? maxFilteringEffort = null, bool useExactSearch = false, bool disableThreading = false, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<StackExchange.Redis.Lease<StackExchange.Redis.VectorSetSimilaritySearchResult>?>!
55+
[SER001]StackExchange.Redis.IDatabaseAsync.VectorSetSimilaritySearchAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.VectorSetSimilaritySearchRequest! query, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<StackExchange.Redis.Lease<StackExchange.Redis.VectorSetSimilaritySearchResult>?>!
3456
[SER001]StackExchange.Redis.VectorSetInfo
3557
[SER001]StackExchange.Redis.VectorSetInfo.Dimension.get -> int
3658
[SER001]StackExchange.Redis.VectorSetInfo.HnswMaxNodeUid.get -> long

0 commit comments

Comments
 (0)