@@ -2990,4 +2990,141 @@ public void Issue230()
29902990 Assert . Equal ( "FT.AGGREGATE" , buildCommand . Command ) ;
29912991 Assert . Equal ( new object [ ] { "idx:users" , "*" , "FILTER" , "@StatusId==1" , "GROUPBY" , 1 , "@CreatedDay" , "REDUCE" , "COUNT_DISTINCT" , 1 , "@UserId" , "REDUCE" , "COUNT" , 0 , "AS" , "count" , "DIALECT" , 3 } , buildCommand . Args ) ;
29922992 }
2993+
2994+ [ SkipIfRedis ( Comparison . LessThan , "7.4.0" ) ]
2995+ public void TestTagInDialect5 ( )
2996+ {
2997+ IDatabase db = redisFixture . Redis . GetDatabase ( ) ;
2998+ db . Execute ( "FLUSHALL" ) ;
2999+ var ft = db . FT ( ) ;
3000+
3001+ Schema sc = new Schema ( )
3002+ . AddTextField ( "title" , 1.0 )
3003+ . AddTagField ( "category" ) ;
3004+
3005+ Assert . True ( ft . Create ( index , FTCreateParams . CreateParams ( ) , sc ) ) ;
3006+ Dictionary < string , object > fields4 = new Dictionary < string , object >
3007+ {
3008+ { "title" , "hello world" } ,
3009+ { "category" , "orange;purple-" }
3010+ } ;
3011+ AddDocument ( db , "qux" , fields4 ) ;
3012+
3013+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@category:{orange\\ ;purple\\ -}" ) ) . TotalResults ) ;
3014+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@category:{orange;purple-}" ) . Dialect ( 5 ) ) . TotalResults ) ;
3015+ }
3016+
3017+ [ SkipIfRedis ( Comparison . LessThan , "7.4.0" ) ]
3018+ public void TestLogicalOperatorsInDialect5 ( )
3019+ {
3020+ IDatabase db = redisFixture . Redis . GetDatabase ( ) ;
3021+ db . Execute ( "FLUSHALL" ) ;
3022+ var ft = db . FT ( ) ;
3023+
3024+ Schema sc = new Schema ( )
3025+ . AddTextField ( "title" , 1.0 )
3026+ . AddTagField ( "category" )
3027+ . AddTagField ( "author" ) ;
3028+
3029+ Assert . True ( ft . Create ( index , FTCreateParams . CreateParams ( ) , sc ) ) ;
3030+ Dictionary < string , object > fields4 = new Dictionary < string , object >
3031+ {
3032+ { "title" , "hello world" } ,
3033+ { "category" , "orange;purple-" } ,
3034+ { "author" , "Newman~" }
3035+
3036+ } ;
3037+ AddDocument ( db , "qux" , fields4 ) ;
3038+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@category:{orange\\ ;purple\\ - | blue\\ ;purple\\ -}" ) ) . TotalResults ) ;
3039+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@category:{orange;purple-} | @category:{blue;purple-}" ) . Dialect ( 5 ) ) . TotalResults ) ;
3040+
3041+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@category:{orange\\ ;purple\\ -} @author:{Newman\\ ~}" ) ) . TotalResults ) ;
3042+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@category:{orange;purple-} @author:{Newman~}" ) . Dialect ( 5 ) ) . TotalResults ) ;
3043+ }
3044+
3045+ [ SkipIfRedis ( Comparison . LessThan , "7.4.0" ) ]
3046+ public void TestNumericInDialect5 ( )
3047+ {
3048+ IDatabase db = redisFixture . Redis . GetDatabase ( ) ;
3049+ db . Execute ( "FLUSHALL" ) ;
3050+ var ft = db . FT ( ) ;
3051+
3052+ Schema sc = new Schema ( )
3053+ . AddTextField ( "title" , 1.0 )
3054+ . AddNumericField ( "version" ) ;
3055+
3056+ Assert . True ( ft . Create ( index , FTCreateParams . CreateParams ( ) , sc ) ) ;
3057+ Dictionary < string , object > fields4 = new Dictionary < string , object >
3058+ {
3059+ { "title" , "hello world" } ,
3060+ { "version" , 123 }
3061+ } ;
3062+ AddDocument ( db , "qux" , fields4 ) ;
3063+
3064+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[123 123]" ) ) . TotalResults ) ;
3065+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[123]" ) . Dialect ( 5 ) ) . TotalResults ) ;
3066+ }
3067+
3068+ [ SkipIfRedis ( Comparison . LessThan , "7.4.0" ) ]
3069+ public void TestNumericOperatorsInDialect5 ( )
3070+ {
3071+ IDatabase db = redisFixture . Redis . GetDatabase ( ) ;
3072+ db . Execute ( "FLUSHALL" ) ;
3073+ var ft = db . FT ( ) ;
3074+
3075+ Schema sc = new Schema ( )
3076+ . AddTextField ( "title" , 1.0 )
3077+ . AddNumericField ( "version" ) ;
3078+
3079+ Assert . True ( ft . Create ( index , FTCreateParams . CreateParams ( ) , sc ) ) ;
3080+ Dictionary < string , object > fields4 = new Dictionary < string , object >
3081+ {
3082+ { "title" , "hello world" } ,
3083+ { "version" , 123 }
3084+ } ;
3085+ AddDocument ( db , "qux" , fields4 ) ;
3086+
3087+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[123 123]" ) ) . TotalResults ) ;
3088+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version==123" ) . Dialect ( 5 ) ) . TotalResults ) ;
3089+
3090+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[122 +inf]" ) ) . TotalResults ) ;
3091+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version>=122" ) . Dialect ( 5 ) ) . TotalResults ) ;
3092+
3093+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[-inf 124]" ) ) . TotalResults ) ;
3094+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version<=124" ) . Dialect ( 5 ) ) . TotalResults ) ;
3095+
3096+ }
3097+
3098+ [ SkipIfRedis ( Comparison . LessThan , "7.4.0" ) ]
3099+ public void TestNumericLogicalOperatorsInDialect5 ( )
3100+ {
3101+ IDatabase db = redisFixture . Redis . GetDatabase ( ) ;
3102+ db . Execute ( "FLUSHALL" ) ;
3103+ var ft = db . FT ( ) ;
3104+
3105+ Schema sc = new Schema ( )
3106+ . AddTextField ( "title" , 1.0 )
3107+ . AddNumericField ( "version" )
3108+ . AddNumericField ( "id" ) ;
3109+
3110+ Assert . True ( ft . Create ( index , FTCreateParams . CreateParams ( ) , sc ) ) ;
3111+ Dictionary < string , object > fields4 = new Dictionary < string , object >
3112+ {
3113+ { "title" , "hello world" } ,
3114+ { "version" , 123 } ,
3115+ { "id" , 456 }
3116+ } ;
3117+ AddDocument ( db , "qux" , fields4 ) ;
3118+
3119+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version<=124" ) . Dialect ( 5 ) ) . TotalResults ) ;
3120+
3121+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[123 123]" ) ) . TotalResults ) ;
3122+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[123] | @version:[124]" ) . Dialect ( 5 ) ) . TotalResults ) ;
3123+
3124+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[123 123] | @version:[7890 7890]" ) ) . TotalResults ) ;
3125+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version==123 | @version==7890" ) . Dialect ( 5 ) ) . TotalResults ) ;
3126+
3127+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version:[123 123] | @id:[456 7890]" ) ) . TotalResults ) ;
3128+ Assert . Equal ( 1 , ft . Search ( index , new Query ( "@version==123 @id==456" ) . Dialect ( 5 ) ) . TotalResults ) ;
3129+ }
29933130}
0 commit comments