From 3629f153254c6fc4c6c68284e9d29df9787cb830 Mon Sep 17 00:00:00 2001 From: shacharPash Date: Sun, 20 Aug 2023 12:49:09 +0300 Subject: [PATCH 1/2] fix Issue --- src/NRedisStack/Search/Schema.cs | 15 ++++----- tests/NRedisStack.Tests/Search/SearchTests.cs | 31 +++++++++++++++---- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/NRedisStack/Search/Schema.cs b/src/NRedisStack/Search/Schema.cs index 2b4f98b8..442b2a72 100644 --- a/src/NRedisStack/Search/Schema.cs +++ b/src/NRedisStack/Search/Schema.cs @@ -1,4 +1,5 @@ -using static NRedisStack.Search.Schema.VectorField; +using NRedisStack.Search.Literals; +using static NRedisStack.Search.Schema.VectorField; namespace NRedisStack.Search { @@ -84,13 +85,13 @@ public TextField(string name, double weight = 1.0, bool noStem = false, internal override void AddFieldTypeArgs(List args) { - if (Sortable) args.Add("SORTABLE"); - if (Unf) args.Add("UNF"); if (NoStem) args.Add("NOSTEM"); if (NoIndex) args.Add("NOINDEX"); AddPhonetic(args); AddWeight(args); if (WithSuffixTrie) args.Add("WITHSUFFIXTRIE"); + if (Sortable) args.Add(AttributeOptions.SORTABLE); + if (Unf) args.Add("UNF"); } private void AddWeight(List args) @@ -141,8 +142,6 @@ internal TagField(string name, bool sortable = false, bool unf = false, internal override void AddFieldTypeArgs(List args) { - if (Sortable) args.Add("SORTABLE"); - if (Unf) args.Add("UNF"); if (NoIndex) args.Add("NOINDEX"); if (WithSuffixTrie) args.Add("WITHSUFFIXTRIE"); if (Separator != ",") @@ -152,6 +151,8 @@ internal override void AddFieldTypeArgs(List args) args.Add(Separator); } if (CaseSensitive) args.Add("CASESENSITIVE"); + if (Sortable) args.Add(AttributeOptions.SORTABLE); + if (Unf) args.Add("UNF"); } } @@ -171,8 +172,8 @@ internal GeoField(string name, bool sortable = false, bool noIndex = false) internal override void AddFieldTypeArgs(List args) { - if (Sortable) args.Add("SORTABLE"); if (NoIndex) args.Add("NOINDEX"); + if (Sortable) args.Add(AttributeOptions.SORTABLE); } } @@ -193,8 +194,8 @@ internal NumericField(string name, bool sortable = false, bool noIndex = false) internal override void AddFieldTypeArgs(List args) { - if (Sortable) args.Add("SORTABLE"); if (NoIndex) args.Add("NOINDEX"); + if (Sortable) args.Add(AttributeOptions.SORTABLE); } } diff --git a/tests/NRedisStack.Tests/Search/SearchTests.cs b/tests/NRedisStack.Tests/Search/SearchTests.cs index 94107829..128f4935 100644 --- a/tests/NRedisStack.Tests/Search/SearchTests.cs +++ b/tests/NRedisStack.Tests/Search/SearchTests.cs @@ -1962,30 +1962,30 @@ public void TestFieldsCommandBuilder() "SCHEMA", "txt", "TEXT", - "SORTABLE", - "UNF", "NOSTEM", "NOINDEX", "PHONETIC", "dm:en", "WITHSUFFIXTRIE", + "SORTABLE", + "UNF", "num", "NUMERIC", - "SORTABLE", "NOINDEX", + "SORTABLE", "loc", "GEO", - "SORTABLE", "NOINDEX", + "SORTABLE", "tag", "TAG", - "SORTABLE", - "UNF", "NOINDEX", "WITHSUFFIXTRIE", "SEPARATOR", ";", "CASESENSITIVE", + "SORTABLE", + "UNF", "vec", "VECTOR", "FLAT", @@ -2752,4 +2752,23 @@ public void TestProfileCommandBuilder() Assert.Equal(new object[] { "index", "SEARCH", "LIMITED", "QUERY", "*" }, search.Args); Assert.Equal(new object[] { "index", "AGGREGATE", "LIMITED", "QUERY", "*" }, aggregate.Args); } + + [Fact] + public void Issue175() + { + ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379"); + IDatabase db = redis.GetDatabase(); + db.Execute("FLUSHALL"); + + SearchCommands ft = db.FT(); + + var sortable = true; + //Add a tag field with sortable = true + var schema = new Schema().AddTagField("", sortable, false, false, "|"); + + //following line throws exception (Note: sortable = true) + Assert.True(ft.Create("myIndex", new FTCreateParams() + .On(IndexDataType.JSON) + .Prefix("doc:"), schema)); + } } \ No newline at end of file From d2614be882b01803d055bc05a11c8897f48ab80c Mon Sep 17 00:00:00 2001 From: shacharPash Date: Sun, 20 Aug 2023 15:56:21 +0300 Subject: [PATCH 2/2] delete comments & cover TEXT also --- tests/NRedisStack.Tests/Search/SearchTests.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/NRedisStack.Tests/Search/SearchTests.cs b/tests/NRedisStack.Tests/Search/SearchTests.cs index 128f4935..fe471c4b 100644 --- a/tests/NRedisStack.Tests/Search/SearchTests.cs +++ b/tests/NRedisStack.Tests/Search/SearchTests.cs @@ -2763,12 +2763,12 @@ public void Issue175() SearchCommands ft = db.FT(); var sortable = true; - //Add a tag field with sortable = true - var schema = new Schema().AddTagField("", sortable, false, false, "|"); - - //following line throws exception (Note: sortable = true) - Assert.True(ft.Create("myIndex", new FTCreateParams() + var ftParams = new FTCreateParams() .On(IndexDataType.JSON) - .Prefix("doc:"), schema)); + .Prefix("doc:"); + var schema = new Schema().AddTagField("tag", sortable, false, false, "|") + .AddTextField("text", 1, sortable); + + Assert.True(ft.Create("myIndex", ftParams, schema)); } } \ No newline at end of file