@@ -510,3 +510,67 @@ func TestReturnFields(t *testing.T) {
510510 assert .Equal (t , "Jon" , docs [0 ].Properties ["name" ])
511511 assert .Equal (t , "25" , docs [0 ].Properties ["years" ])
512512}
513+
514+ func TestParams (t * testing.T ) {
515+ c := createClient ("TestParams" )
516+ version , _ := c .getRediSearchVersion ()
517+ if version < 20430 {
518+ // VectorSimilarity is available for RediSearch 2.2+
519+ return
520+ }
521+
522+ // Create a schema
523+ sc := NewSchema (DefaultOptions ).AddField (NewNumericField ("numval" ))
524+ c .Drop ()
525+ assert .Nil (t , c .CreateIndex (sc ))
526+ // Create data
527+ _ , err := c .pool .Get ().Do ("HSET" , "1" , "numval" , "1" )
528+ assert .Nil (t , err )
529+ _ , err = c .pool .Get ().Do ("HSET" , "2" , "numval" , "2" )
530+ assert .Nil (t , err )
531+ _ , err = c .pool .Get ().Do ("HSET" , "3" , "numval" , "3" )
532+ assert .Nil (t , err )
533+ // Searching with parameters
534+ _ , total , err := c .Search (NewQuery ("@numval:[$min $max]" ).
535+ SetParams (map [string ]interface {}{"min" : "1" , "max" : "2" }).
536+ SetDialect (2 ))
537+ assert .Nil (t , err )
538+ assert .Equal (t , 2 , total )
539+ }
540+
541+ func TestVectorField (t * testing.T ) {
542+ c := createClient ("TestVectorField" )
543+ version , _ := c .getRediSearchVersion ()
544+ if version < 20430 {
545+ // VectorSimilarity is available for RediSearch 2.2+
546+ return
547+ }
548+
549+ // Create a schema
550+ sc := NewSchema (DefaultOptions ).AddField (
551+ NewVectorFieldOptions ("v" , VectorFieldOptions {Algorithm : Flat , Attributes : map [string ]interface {}{
552+ "TYPE" : "FLOAT32" ,
553+ "DIM" : 2 ,
554+ "DISTANCE_METRIC" : "L2" ,
555+ }}),
556+ )
557+ c .Drop ()
558+ assert .Nil (t , c .CreateIndex (sc ))
559+ // Create data
560+ _ , err := c .pool .Get ().Do ("HSET" , "a" , "v" , "aaaaaaaa" )
561+ assert .Nil (t , err )
562+ _ , err = c .pool .Get ().Do ("HSET" , "b" , "v" , "aaaabaaa" )
563+ assert .Nil (t , err )
564+ _ , err = c .pool .Get ().Do ("HSET" , "c" , "v" , "aaaaabaa" )
565+ assert .Nil (t , err )
566+ // Searching with parameters
567+ docs , total , err := c .Search (NewQuery ("*=>[KNN 2 @v $vec]" ).
568+ AddParam ("vec" , "aaaaaaaa" ).
569+ SetSortBy ("__v_score" , true ).
570+ AddReturnFields ("__v_score" ).
571+ SetDialect (2 ))
572+ assert .Nil (t , err )
573+ assert .Equal (t , 2 , total )
574+ assert .Equal (t , "a" , docs [0 ].Id )
575+ assert .Equal (t , "0" , docs [0 ].Properties ["__v_score" ])
576+ }
0 commit comments