@@ -533,3 +533,67 @@ func TestNoStopWords(t *testing.T) {
533533 assert .Nil (t , err )
534534 assert .Equal (t , 0 , total )
535535}
536+
537+ func TestParams (t * testing.T ) {
538+ c := createClient ("TestParams" )
539+ version , _ := c .getRediSearchVersion ()
540+ if version < 20430 {
541+ // VectorSimilarity is available for RediSearch 2.2+
542+ return
543+ }
544+
545+ // Create a schema
546+ sc := NewSchema (DefaultOptions ).AddField (NewNumericField ("numval" ))
547+ c .Drop ()
548+ assert .Nil (t , c .CreateIndex (sc ))
549+ // Create data
550+ _ , err := c .pool .Get ().Do ("HSET" , "1" , "numval" , "1" )
551+ assert .Nil (t , err )
552+ _ , err = c .pool .Get ().Do ("HSET" , "2" , "numval" , "2" )
553+ assert .Nil (t , err )
554+ _ , err = c .pool .Get ().Do ("HSET" , "3" , "numval" , "3" )
555+ assert .Nil (t , err )
556+ // Searching with parameters
557+ _ , total , err := c .Search (NewQuery ("@numval:[$min $max]" ).
558+ SetParams (map [string ]interface {}{"min" : "1" , "max" : "2" }).
559+ SetDialect (2 ))
560+ assert .Nil (t , err )
561+ assert .Equal (t , 2 , total )
562+ }
563+
564+ func TestVectorField (t * testing.T ) {
565+ c := createClient ("TestVectorField" )
566+ version , _ := c .getRediSearchVersion ()
567+ if version < 20430 {
568+ // VectorSimilarity is available for RediSearch 2.2+
569+ return
570+ }
571+
572+ // Create a schema
573+ sc := NewSchema (DefaultOptions ).AddField (
574+ NewVectorFieldOptions ("v" , VectorFieldOptions {Algorithm : Flat , Attributes : map [string ]interface {}{
575+ "TYPE" : "FLOAT32" ,
576+ "DIM" : 2 ,
577+ "DISTANCE_METRIC" : "L2" ,
578+ }}),
579+ )
580+ c .Drop ()
581+ assert .Nil (t , c .CreateIndex (sc ))
582+ // Create data
583+ _ , err := c .pool .Get ().Do ("HSET" , "a" , "v" , "aaaaaaaa" )
584+ assert .Nil (t , err )
585+ _ , err = c .pool .Get ().Do ("HSET" , "b" , "v" , "aaaabaaa" )
586+ assert .Nil (t , err )
587+ _ , err = c .pool .Get ().Do ("HSET" , "c" , "v" , "aaaaabaa" )
588+ assert .Nil (t , err )
589+ // Searching with parameters
590+ docs , total , err := c .Search (NewQuery ("*=>[KNN 2 @v $vec]" ).
591+ AddParam ("vec" , "aaaaaaaa" ).
592+ SetSortBy ("__v_score" , true ).
593+ AddReturnFields ("__v_score" ).
594+ SetDialect (2 ))
595+ assert .Nil (t , err )
596+ assert .Equal (t , 2 , total )
597+ assert .Equal (t , "a" , docs [0 ].Id )
598+ assert .Equal (t , "0" , docs [0 ].Properties ["__v_score" ])
599+ }
0 commit comments