Skip to content

Commit afbcdff

Browse files
committed
test dialect 5
1 parent 2d5babb commit afbcdff

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed

tests/NRedisStack.Tests/Search/SearchTests.cs

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)