@@ -516,20 +516,31 @@ func TestClient_SynAdd(t *testing.T) {
516516
517517func TestClient_SynDump (t * testing.T ) {
518518 c := createClient ("testsyndump" )
519-
519+ version , err := c .GetRediSearchVersion ()
520+ assert .Nil (t , err )
520521 sc := NewSchema (DefaultOptions ).
521522 AddField (NewTextField ("name" )).
522523 AddField (NewTextField ("addr" ))
523524 c .Drop ()
524- err := c .CreateIndex (sc )
525- assert .Nil (t , err )
526- ret , err := c .SynUpdate ("testsyndump" , 1 , []string {"girl" , "baby" })
527- assert .Nil (t , err )
528- assert .Equal (t , "OK" , ret )
525+ err = c .CreateIndex (sc )
526+ var gId1 int64 = 1
527+ var gId2 int64 = 2
529528
530- _ , err = c .SynUpdate ("testsyndump" , 2 , []string {"child" })
531529 assert .Nil (t , err )
532- assert .Equal (t , "OK" , ret )
530+ // For RediSearch < v2.0 we need to use SYNADD. For Redisearch >= v2.0 we need to use SYNUPDATE
531+ if version <= 10699 {
532+ gId1 , err = c .SynAdd ("testsyndump" , []string {"girl" , "baby" })
533+ assert .Nil (t , err )
534+ gId2 , err = c .SynAdd ("testsyndump" , []string {"child" })
535+ assert .Nil (t , err )
536+ } else {
537+ ret , err := c .SynUpdate ("testsyndump" , gId1 , []string {"girl" , "baby" })
538+ assert .Nil (t , err )
539+ assert .Equal (t , "OK" , ret )
540+ _ , err = c .SynUpdate ("testsyndump" , gId2 , []string {"child" })
541+ assert .Nil (t , err )
542+ assert .Equal (t , "OK" , ret )
543+ }
533544
534545 m , err := c .SynDump ("testsyndump" )
535546 assert .Contains (t , m , "baby" )
@@ -642,6 +653,8 @@ func TestClient_SynUpdate(t *testing.T) {
642653 sc := NewSchema (DefaultOptions ).
643654 AddField (NewTextField ("name" )).
644655 AddField (NewTextField ("addr" ))
656+ version , err := c .GetRediSearchVersion ()
657+ assert .Nil (t , err )
645658
646659 type args struct {
647660 indexName string
@@ -663,8 +676,15 @@ func TestClient_SynUpdate(t *testing.T) {
663676 c .Drop ()
664677 err := c .CreateIndex (sc )
665678 assert .Nil (t , err )
679+ gId := tt .args .synonymGroupId
680+
681+ // For older version of RediSearch we first need to use SYNADD then SYNUPDATE
682+ if version <= 10699 {
683+ gId , err = c .SynAdd (tt .args .indexName , []string {"workaround" })
684+ assert .Nil (t , err )
685+ }
666686
667- got , err := c .SynUpdate (tt .args .indexName , tt . args . synonymGroupId , tt .args .terms )
687+ got , err := c .SynUpdate (tt .args .indexName , gId , tt .args .terms )
668688 if (err != nil ) != tt .wantErr {
669689 t .Errorf ("SynUpdate() error = %v, wantErr %v" , err , tt .wantErr )
670690 return
0 commit comments