From b7b6385b7b951d2e5e770d8da5067d86c7fa201b Mon Sep 17 00:00:00 2001 From: Steve Gordon Date: Wed, 20 Jan 2021 12:31:08 +0000 Subject: [PATCH 1/2] Implement unsigned long (#5275) --- .../Mapping/Types/Core/Number/NumberType.cs | 6 ++- src/Nest/Mapping/Types/FieldType.cs | 3 ++ src/Nest/Mapping/Types/PropertyFormatter.cs | 1 + .../Types/Core/Number/NumberPropertyTests.cs | 48 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) diff --git a/src/Nest/Mapping/Types/Core/Number/NumberType.cs b/src/Nest/Mapping/Types/Core/Number/NumberType.cs index da8ae44c341..fdc5e5b5be6 100644 --- a/src/Nest/Mapping/Types/Core/Number/NumberType.cs +++ b/src/Nest/Mapping/Types/Core/Number/NumberType.cs @@ -34,7 +34,10 @@ public enum NumberType Short, [EnumMember(Value = "byte")] - Byte + Byte, + + [EnumMember(Value = "unsigned_long")] + UnsignedLong } internal static class NumberTypeExtensions @@ -51,6 +54,7 @@ public static FieldType ToFieldType(this NumberType numberType) case NumberType.Long: return FieldType.Long; case NumberType.Short: return FieldType.Short; case NumberType.Byte: return FieldType.Byte; + case NumberType.UnsignedLong: return FieldType.UnsignedLong; default: throw new ArgumentOutOfRangeException(nameof(numberType), numberType, null); } diff --git a/src/Nest/Mapping/Types/FieldType.cs b/src/Nest/Mapping/Types/FieldType.cs index 16db2bdce5c..841e42a4478 100644 --- a/src/Nest/Mapping/Types/FieldType.cs +++ b/src/Nest/Mapping/Types/FieldType.cs @@ -89,6 +89,9 @@ public enum FieldType [EnumMember(Value = "long")] Long, + [EnumMember(Value = "unsigned_long")] + UnsignedLong, + [EnumMember(Value = "short")] Short, diff --git a/src/Nest/Mapping/Types/PropertyFormatter.cs b/src/Nest/Mapping/Types/PropertyFormatter.cs index 5e0b3e04b5b..629029bdfcd 100644 --- a/src/Nest/Mapping/Types/PropertyFormatter.cs +++ b/src/Nest/Mapping/Types/PropertyFormatter.cs @@ -65,6 +65,7 @@ public IProperty Deserialize(ref JsonReader reader, IJsonFormatterResolver forma case FieldType.Long: case FieldType.ScaledFloat: case FieldType.HalfFloat: + case FieldType.UnsignedLong: var numberProperty = Deserialize(ref segmentReader, formatterResolver); ((IProperty)numberProperty).Type = typeString; return numberProperty; diff --git a/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs b/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs index b6b25d9fbaf..26aea0da1d7 100644 --- a/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs +++ b/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information using System; +using Elastic.Elasticsearch.Xunit.XunitPlumbing; using Nest; using Tests.Core.ManagedElasticsearch.Clusters; using Tests.Domain; @@ -112,4 +113,51 @@ public ScaledFloatNumberPropertyTests(WritableCluster cluster, EndpointUsage usa } }; } + + [SkipVersion("<7.10.0", "Introduced in 7.10.0")] + public class UnsignedLongNumberPropertyTests : PropertyTestsBase + { + public UnsignedLongNumberPropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + + protected override object ExpectJson => new + { + properties = new + { + numberOfCommits = new + { + type = "unsigned_long", + doc_values = true, + similarity = "BM25", + store = true, + index = false, + ignore_malformed = true + } + } + }; + + protected override Func, IPromise> FluentProperties => f => f + .Number(n => n + .Name(p => p.NumberOfCommits) + .Type(NumberType.UnsignedLong) + .DocValues() + .Similarity("BM25") + .Store() + .Index(false) + .IgnoreMalformed() + ); + + protected override IProperties InitializerProperties => new Properties + { + { + "numberOfCommits", new NumberProperty(NumberType.UnsignedLong) + { + DocValues = true, + Similarity = "BM25", + Store = true, + Index = false, + IgnoreMalformed = true + } + } + }; + } } From 5dc081800a9f9b3dd5988cb0a5dcb923747415a0 Mon Sep 17 00:00:00 2001 From: Steve Gordon Date: Mon, 25 Jan 2021 11:11:09 +0000 Subject: [PATCH 2/2] test fixup --- tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs b/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs index 26aea0da1d7..5f02e06fe95 100644 --- a/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs +++ b/tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs @@ -127,7 +127,6 @@ public UnsignedLongNumberPropertyTests(WritableCluster cluster, EndpointUsage us { type = "unsigned_long", doc_values = true, - similarity = "BM25", store = true, index = false, ignore_malformed = true @@ -140,7 +139,6 @@ public UnsignedLongNumberPropertyTests(WritableCluster cluster, EndpointUsage us .Name(p => p.NumberOfCommits) .Type(NumberType.UnsignedLong) .DocValues() - .Similarity("BM25") .Store() .Index(false) .IgnoreMalformed() @@ -152,7 +150,6 @@ public UnsignedLongNumberPropertyTests(WritableCluster cluster, EndpointUsage us "numberOfCommits", new NumberProperty(NumberType.UnsignedLong) { DocValues = true, - Similarity = "BM25", Store = true, Index = false, IgnoreMalformed = true