Skip to content

Commit c728790

Browse files
committed
update vectorset API
Signed-off-by: fukua95 <[email protected]>
1 parent af01b6d commit c728790

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

vectorset_commands.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
type VectorSetCmdable interface {
99
VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
10-
VAddArgs(ctx context.Context, key, element string, val Vector, addArgs VAddArgs) *BoolCmd
10+
VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
1111
VCard(ctx context.Context, key string) *IntCmd
1212
VDim(ctx context.Context, key string) *IntCmd
1313
VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
@@ -21,8 +21,8 @@ type VectorSetCmdable interface {
2121
VSetAttr(ctx context.Context, key, element, attr string) *BoolCmd
2222
VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
2323
VSimWithScores(ctx context.Context, key string, val Vector) *MapStringFloatCmd
24-
VSimArgs(ctx context.Context, key string, val Vector, args VSimArgs) *StringSliceCmd
25-
VSimArgsWithScores(ctx context.Context, key string, val Vector, args VSimArgs) *MapStringFloatCmd
24+
VSimWithArgs(ctx context.Context, key string, val Vector, args *VSimArgs) *StringSliceCmd
25+
VSimWithArgsWithScores(ctx context.Context, key string, val Vector, args *VSimArgs) *MapStringFloatCmd
2626
}
2727

2828
type Vector interface {
@@ -72,7 +72,7 @@ var _ Vector = &VectorRef{}
7272

7373
// `VADD key (FP32 | VALUES num) vector element`
7474
func (c cmdable) VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd {
75-
return c.VAddArgs(ctx, key, element, val, VAddArgs{})
75+
return c.VAddWithArgs(ctx, key, element, val, &VAddArgs{})
7676
}
7777

7878
type VAddArgs struct {
@@ -120,7 +120,10 @@ func (v VAddArgs) appendArgs(args []any) []any {
120120
}
121121

122122
// `VADD key [REDUCE dim] (FP32 | VALUES num) vector element [CAS] [NOQUANT | Q8 | BIN] [EF build-exploration-factor] [SETATTR attributes] [M numlinks]`
123-
func (c cmdable) VAddArgs(ctx context.Context, key, element string, val Vector, addArgs VAddArgs) *BoolCmd {
123+
func (c cmdable) VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd {
124+
if addArgs == nil {
125+
addArgs = &VAddArgs{}
126+
}
124127
args := []any{"vadd", key}
125128
if addArgs.reduce() > 0 {
126129
args = append(args, "reduce", addArgs.reduce())
@@ -216,12 +219,12 @@ func (c cmdable) VSetAttr(ctx context.Context, key, element, attr string) *BoolC
216219

217220
// `VSIM key (ELE | FP32 | VALUES num) (vector | element)`
218221
func (c cmdable) VSim(ctx context.Context, key string, val Vector) *StringSliceCmd {
219-
return c.VSimArgs(ctx, key, val, VSimArgs{})
222+
return c.VSimWithArgs(ctx, key, val, &VSimArgs{})
220223
}
221224

222225
// `VSIM key (ELE | FP32 | VALUES num) (vector | element) WITHSCORES`
223226
func (c cmdable) VSimWithScores(ctx context.Context, key string, val Vector) *MapStringFloatCmd {
224-
return c.VSimArgsWithScores(ctx, key, val, VSimArgs{})
227+
return c.VSimWithArgsWithScores(ctx, key, val, &VSimArgs{})
225228
}
226229

227230
type VSimArgs struct {
@@ -262,7 +265,10 @@ func (v VSimArgs) appendArgs(args []any) []any {
262265

263266
// `VSIM key (ELE | FP32 | VALUES num) (vector | element) [COUNT num]
264267
// [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]`
265-
func (c cmdable) VSimArgs(ctx context.Context, key string, val Vector, simArgs VSimArgs) *StringSliceCmd {
268+
func (c cmdable) VSimWithArgs(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *StringSliceCmd {
269+
if simArgs == nil {
270+
simArgs = &VSimArgs{}
271+
}
266272
args := []any{"vsim", key}
267273
args = append(args, val.Value()...)
268274
args = simArgs.appendArgs(args)
@@ -273,7 +279,10 @@ func (c cmdable) VSimArgs(ctx context.Context, key string, val Vector, simArgs V
273279

274280
// `VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num]
275281
// [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]`
276-
func (c cmdable) VSimArgsWithScores(ctx context.Context, key string, val Vector, simArgs VSimArgs) *MapStringFloatCmd {
282+
func (c cmdable) VSimWithArgsWithScores(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *MapStringFloatCmd {
283+
if simArgs == nil {
284+
simArgs = &VSimArgs{}
285+
}
277286
args := []any{"vsim", key}
278287
args = append(args, val.Value()...)
279288
args = append(args, "withscores")

vectorset_commands_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ var _ = Describe("Redis VectorSet commands", Label("vectorset"), func() {
136136
reducedDim := 50
137137

138138
v1 := generateRandomVector(originalDim)
139-
ok, err := client.VAddArgs(ctx, vecName, "k1", &v1, redis.VAddArgs{
139+
ok, err := client.VAddWithArgs(ctx, vecName, "k1", &v1, &redis.VAddArgs{
140140
Reduce: int64(reducedDim),
141141
}).Result()
142142
expectNil(err)
@@ -151,13 +151,13 @@ var _ = Describe("Redis VectorSet commands", Label("vectorset"), func() {
151151

152152
wrongDim := 80
153153
wrongV := generateRandomVector(wrongDim)
154-
_, err = client.VAddArgs(ctx, vecName, "kw", &wrongV, redis.VAddArgs{
154+
_, err = client.VAddWithArgs(ctx, vecName, "kw", &wrongV, &redis.VAddArgs{
155155
Reduce: int64(reducedDim),
156156
}).Result()
157157
expectTrue(err != nil)
158158

159159
v2 := generateRandomVector(originalDim)
160-
ok, err = client.VAddArgs(ctx, vecName, "k2", &v2, redis.VAddArgs{
160+
ok, err = client.VAddWithArgs(ctx, vecName, "k2", &v2, &redis.VAddArgs{
161161
Reduce: int64(reducedDim),
162162
}).Result()
163163
expectNil(err)
@@ -257,60 +257,60 @@ var _ = Describe("Redis VectorSet commands", Label("vectorset"), func() {
257257
expectEqual(len(res), len(vals))
258258

259259
// test equality
260-
sim, err := client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
260+
sim, err := client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
261261
Filter: `.age == 25`,
262262
}).Result()
263263
expectNil(err)
264264
expectEqual(len(sim), 1)
265265
expectEqual(sim[0], vals[0].name)
266266

267267
// test greater than
268-
sim, err = client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
268+
sim, err = client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
269269
Filter: `.age > 25`,
270270
}).Result()
271271
expectNil(err)
272272
expectEqual(len(sim), 2)
273273

274274
// test less than or equal
275-
sim, err = client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
275+
sim, err = client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
276276
Filter: `.age <= 30`,
277277
}).Result()
278278
expectNil(err)
279279
expectEqual(len(sim), 2)
280280

281281
// test string equality
282-
sim, err = client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
282+
sim, err = client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
283283
Filter: `.name == "Alice"`,
284284
}).Result()
285285
expectNil(err)
286286
expectEqual(len(sim), 1)
287287
expectEqual(sim[0], vals[0].name)
288288

289289
// test string inequality
290-
sim, err = client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
290+
sim, err = client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
291291
Filter: `.name != "Alice"`,
292292
}).Result()
293293
expectNil(err)
294294
expectEqual(len(sim), 2)
295295

296296
// test bool
297-
sim, err = client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
297+
sim, err = client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
298298
Filter: `.active`,
299299
}).Result()
300300
expectNil(err)
301301
expectEqual(len(sim), 1)
302302
expectEqual(sim[0], vals[0].name)
303303

304304
// test logical add
305-
sim, err = client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
305+
sim, err = client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
306306
Filter: `.age > 20 and .age < 30`,
307307
}).Result()
308308
expectNil(err)
309309
expectEqual(len(sim), 1)
310310
expectEqual(sim[0], vals[0].name)
311311

312312
// test logical or
313-
sim, err = client.VSimArgs(ctx, vecName, &vals[0].v, redis.VSimArgs{
313+
sim, err = client.VSimWithArgs(ctx, vecName, &vals[0].v, &redis.VSimArgs{
314314
Filter: `.age < 30 or .age > 35`,
315315
}).Result()
316316
expectNil(err)

0 commit comments

Comments
 (0)