Skip to content

Commit b7b6385

Browse files
stevejgordongithub-actions[bot]
authored andcommitted
Implement unsigned long (#5275)
1 parent d58d9c9 commit b7b6385

File tree

4 files changed

+57
-1
lines changed

4 files changed

+57
-1
lines changed

src/Nest/Mapping/Types/Core/Number/NumberType.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ public enum NumberType
3434
Short,
3535

3636
[EnumMember(Value = "byte")]
37-
Byte
37+
Byte,
38+
39+
[EnumMember(Value = "unsigned_long")]
40+
UnsignedLong
3841
}
3942

4043
internal static class NumberTypeExtensions
@@ -51,6 +54,7 @@ public static FieldType ToFieldType(this NumberType numberType)
5154
case NumberType.Long: return FieldType.Long;
5255
case NumberType.Short: return FieldType.Short;
5356
case NumberType.Byte: return FieldType.Byte;
57+
case NumberType.UnsignedLong: return FieldType.UnsignedLong;
5458
default:
5559
throw new ArgumentOutOfRangeException(nameof(numberType), numberType, null);
5660
}

src/Nest/Mapping/Types/FieldType.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ public enum FieldType
8989
[EnumMember(Value = "long")]
9090
Long,
9191

92+
[EnumMember(Value = "unsigned_long")]
93+
UnsignedLong,
94+
9295
[EnumMember(Value = "short")]
9396
Short,
9497

src/Nest/Mapping/Types/PropertyFormatter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public IProperty Deserialize(ref JsonReader reader, IJsonFormatterResolver forma
6565
case FieldType.Long:
6666
case FieldType.ScaledFloat:
6767
case FieldType.HalfFloat:
68+
case FieldType.UnsignedLong:
6869
var numberProperty = Deserialize<NumberProperty>(ref segmentReader, formatterResolver);
6970
((IProperty)numberProperty).Type = typeString;
7071
return numberProperty;

tests/Tests/Mapping/Types/Core/Number/NumberPropertyTests.cs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information
44

55
using System;
6+
using Elastic.Elasticsearch.Xunit.XunitPlumbing;
67
using Nest;
78
using Tests.Core.ManagedElasticsearch.Clusters;
89
using Tests.Domain;
@@ -112,4 +113,51 @@ public ScaledFloatNumberPropertyTests(WritableCluster cluster, EndpointUsage usa
112113
}
113114
};
114115
}
116+
117+
[SkipVersion("<7.10.0", "Introduced in 7.10.0")]
118+
public class UnsignedLongNumberPropertyTests : PropertyTestsBase
119+
{
120+
public UnsignedLongNumberPropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
121+
122+
protected override object ExpectJson => new
123+
{
124+
properties = new
125+
{
126+
numberOfCommits = new
127+
{
128+
type = "unsigned_long",
129+
doc_values = true,
130+
similarity = "BM25",
131+
store = true,
132+
index = false,
133+
ignore_malformed = true
134+
}
135+
}
136+
};
137+
138+
protected override Func<PropertiesDescriptor<Project>, IPromise<IProperties>> FluentProperties => f => f
139+
.Number(n => n
140+
.Name(p => p.NumberOfCommits)
141+
.Type(NumberType.UnsignedLong)
142+
.DocValues()
143+
.Similarity("BM25")
144+
.Store()
145+
.Index(false)
146+
.IgnoreMalformed()
147+
);
148+
149+
protected override IProperties InitializerProperties => new Properties
150+
{
151+
{
152+
"numberOfCommits", new NumberProperty(NumberType.UnsignedLong)
153+
{
154+
DocValues = true,
155+
Similarity = "BM25",
156+
Store = true,
157+
Index = false,
158+
IgnoreMalformed = true
159+
}
160+
}
161+
};
162+
}
115163
}

0 commit comments

Comments
 (0)