Skip to content

Commit 61a0b39

Browse files
Implement unsigned long (#5275) (#5277)
Co-authored-by: Steve Gordon <sgordon@hotmail.co.uk>
1 parent c1316d3 commit 61a0b39

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
@@ -68,6 +68,7 @@ public IProperty Deserialize(ref JsonReader reader, IJsonFormatterResolver forma
6868
case FieldType.Long:
6969
case FieldType.ScaledFloat:
7070
case FieldType.HalfFloat:
71+
case FieldType.UnsignedLong:
7172
var numberProperty = Deserialize<NumberProperty>(ref segmentReader, formatterResolver);
7273
((IProperty)numberProperty).Type = typeString;
7374
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;
@@ -118,4 +119,51 @@ public ScaledFloatNumberPropertyTests(WritableCluster cluster, EndpointUsage usa
118119
}
119120
};
120121
}
122+
123+
[SkipVersion("<7.10.0", "Introduced in 7.10.0")]
124+
public class UnsignedLongNumberPropertyTests : PropertyTestsBase
125+
{
126+
public UnsignedLongNumberPropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
127+
128+
protected override object ExpectJson => new
129+
{
130+
properties = new
131+
{
132+
numberOfCommits = new
133+
{
134+
type = "unsigned_long",
135+
doc_values = true,
136+
similarity = "BM25",
137+
store = true,
138+
index = false,
139+
ignore_malformed = true
140+
}
141+
}
142+
};
143+
144+
protected override Func<PropertiesDescriptor<Project>, IPromise<IProperties>> FluentProperties => f => f
145+
.Number(n => n
146+
.Name(p => p.NumberOfCommits)
147+
.Type(NumberType.UnsignedLong)
148+
.DocValues()
149+
.Similarity("BM25")
150+
.Store()
151+
.Index(false)
152+
.IgnoreMalformed()
153+
);
154+
155+
protected override IProperties InitializerProperties => new Properties
156+
{
157+
{
158+
"numberOfCommits", new NumberProperty(NumberType.UnsignedLong)
159+
{
160+
DocValues = true,
161+
Similarity = "BM25",
162+
Store = true,
163+
Index = false,
164+
IgnoreMalformed = true
165+
}
166+
}
167+
};
168+
}
121169
}

0 commit comments

Comments
 (0)