Skip to content

Commit 6811958

Browse files
committed
Fix #1438: Support for precision on GeoPoint mapping
1 parent aa126d6 commit 6811958

File tree

6 files changed

+61
-1
lines changed

6 files changed

+61
-1
lines changed

Diff for: src/Nest/Domain/Mapping/Descriptors/FieldDataNonStringMappingDescriptor.cs

+6
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,11 @@ public FieldDataNonStringMappingDescriptor Filter(Func<FieldDataFilterDescriptor
3333
this.FieldData.Filter = selector.Filter;
3434
return this;
3535
}
36+
37+
public FieldDataNonStringMappingDescriptor Precision(double precision, GeoPrecisionUnit unit)
38+
{
39+
this.FieldData.Precision = new GeoPrecision(precision, unit);
40+
return this;
41+
}
3642
}
3743
}

Diff for: src/Nest/Domain/Mapping/SubMappings/FieldData/FieldDataNonStringMapping.cs

+3
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,8 @@ public class FieldDataNonStringMapping : FieldDataMapping
1111
{
1212
[JsonProperty("format")]
1313
public FieldDataNonStringFormat? Format { get; set; }
14+
15+
[JsonProperty("precision")]
16+
public GeoPrecision Precision { get; set; }
1417
}
1518
}

Diff for: src/Nest/Enums/FieldDataNonStringFormat.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ public enum FieldDataNonStringFormat
1616
[EnumMember(Value = "doc_values")]
1717
DocValues,
1818
[EnumMember(Value = "disabled")]
19-
Disabled
19+
Disabled,
20+
[EnumMember(Value = "compressed")]
21+
Compressed
2022
}
2123
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"elasticsearchprojects": {
3+
"properties": {
4+
"origin": {
5+
"type": "geo_point",
6+
"fielddata": {
7+
"format": "compressed",
8+
"precision": "1.0km"
9+
}
10+
}
11+
}
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using Nest.Tests.MockData.Domain;
2+
using NUnit.Framework;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Reflection;
7+
using System.Text;
8+
using System.Threading.Tasks;
9+
10+
namespace Nest.Tests.Unit.Core.Map.GeoPoint
11+
{
12+
[TestFixture]
13+
public class GeoPointMappingTests : BaseJsonTests
14+
{
15+
[Test]
16+
public void FielddataSerializes()
17+
{
18+
var result = this._client.Map<ElasticsearchProject>(m => m
19+
.Properties(ps => ps
20+
.GeoPoint(gp => gp
21+
.Name(p => p.Origin)
22+
.FieldData(fd => fd
23+
.Format(FieldDataNonStringFormat.Compressed)
24+
.Precision(1, GeoPrecisionUnit.Kilometers)
25+
)
26+
)
27+
)
28+
);
29+
this.JsonEquals(result.ConnectionStatus.Request, MethodInfo.GetCurrentMethod());
30+
}
31+
}
32+
}

Diff for: src/Tests/Nest.Tests.Unit/Nest.Tests.Unit.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
<Compile Include="Core\Map\CustomMapping\ImagePluginMappingTests.cs" />
111111
<Compile Include="Core\Map\Enums\EnumMappingTests.cs" />
112112
<Compile Include="Core\Map\GenericTypes\GenericTypeMappingTests.cs" />
113+
<Compile Include="Core\Map\GeoPoint\GeoPointMappingTests.cs" />
113114
<Compile Include="Core\Map\GeoShape\GeoShapeMappingTests.cs" />
114115
<Compile Include="Core\Map\GetMappingSerializationTests.cs" />
115116
<Compile Include="Core\Map\MappingBehaviourTests.cs" />
@@ -190,6 +191,9 @@
190191
<None Include="Core\Map\GenericTypes\GenericTypeMapping.json">
191192
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
192193
</None>
194+
<None Include="Core\Map\GeoPoint\FielddataSerializes.json">
195+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
196+
</None>
193197
<None Include="Core\Map\GeoShape\PrecisionSerializesAsString.json">
194198
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
195199
</None>

0 commit comments

Comments
 (0)