Skip to content

Commit dbee3e6

Browse files
committed
fixed aggregations to work on 1.2, this means that for now .Histogram() response helper is broken on anything before 1.2
1 parent 247b8b8 commit dbee3e6

File tree

8 files changed

+22
-15
lines changed

8 files changed

+22
-15
lines changed

src/Nest/Domain/Aggregations/AggregationsHelper.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,11 @@ public Bucket<KeyItem> Terms(string key)
105105
return b;
106106
}
107107

108-
public Bucket<KeyItem> Histogram(string key)
108+
public Bucket<HistogramItem> Histogram(string key)
109109
{
110110
var bucket = this.TryGet<Bucket>(key);
111-
var b = new Bucket<KeyItem>();
112-
b.Items = bucket.Items.OfType<KeyItem>().ToList();
111+
var b = new Bucket<HistogramItem>();
112+
b.Items = bucket.Items.OfType<HistogramItem>().ToList();
113113
return b;
114114
}
115115

@@ -154,11 +154,11 @@ public Bucket<RangeItem> GeoDistance(string key)
154154
return b;
155155
}
156156

157-
public Bucket<DateHistogramItem> DateHistogram(string key)
157+
public Bucket<HistogramItem> DateHistogram(string key)
158158
{
159159
var bucket = this.TryGet<Bucket>(key);
160-
var b = new Bucket<DateHistogramItem>();
161-
b.Items = bucket.Items.OfType<DateHistogramItem>().ToList();
160+
var b = new Bucket<HistogramItem>();
161+
b.Items = bucket.Items.OfType<HistogramItem>().ToList();
162162
return b;
163163
}
164164

src/Nest/Domain/Aggregations/DateHistogramItem.cs renamed to src/Nest/Domain/Aggregations/HistogramItem.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
namespace Nest
44
{
5-
public class DateHistogramItem : BucketAggregationBase, IBucketItem
5+
public class HistogramItem : BucketAggregationBase, IBucketItem
66
{
77
public long Key { get; set; }
88
public string KeyAsString { get; set; }
99

10+
/// <summary>
11+
/// Get a DateTime form of the returned key, only make sense on date_histogram aggregations.
12+
/// </summary>
1013
public DateTime Date
1114
{
1215
get

src/Nest/Domain/Facets/HistogramFacet.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
namespace Nest
55
{
66
[JsonObject]
7-
public class HistogramFacet : Facet, IFacet<HistogramItem>
7+
public class HistogramFacet : Facet, IFacet<HistogramFacetItem>
88
{
99
[JsonProperty("entries")]
10-
public IEnumerable<HistogramItem> Items { get; internal set; }
10+
public IEnumerable<HistogramFacetItem> Items { get; internal set; }
1111
}
12-
public class HistogramItem : FacetItem
12+
public class HistogramFacetItem : FacetItem
1313
{
1414
[JsonProperty("key")]
1515
public double Key { get; set; }

src/Nest/Nest.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
<Compile Include="Domain\Aggregations\AggregationsHelper.cs" />
105105
<Compile Include="Domain\Aggregations\Bucket.cs" />
106106
<Compile Include="Domain\Aggregations\BucketAggregationBase.cs" />
107-
<Compile Include="Domain\Aggregations\DateHistogramItem.cs" />
107+
<Compile Include="Domain\Aggregations\HistogramItem.cs" />
108108
<Compile Include="Domain\Aggregations\ExtendedStatsMetric.cs" />
109109
<Compile Include="Domain\Aggregations\IAggration.cs" />
110110
<Compile Include="Domain\Aggregations\IBucketAggregation.cs" />

src/Nest/Resolvers/Converters/Aggregations/AggregationConverter.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Nest.Resolvers.Converters.Aggregations
99

1010
public class AggregationConverter : JsonConverter
1111
{
12-
private static Regex _numeric = new Regex(@"^[\d.]+$");
12+
private static Regex _numeric = new Regex(@"^[\d.]+(\.[\d.]+)?$");
1313

1414
public override bool CanWrite
1515
{
@@ -36,6 +36,8 @@ private IAggregation ReadAggregation(JsonReader reader, JsonSerializer serialize
3636

3737
switch (property)
3838
{
39+
case "values":
40+
return GetPercentilesMetricAggregation(reader, serializer);
3941
case "value":
4042
return GetValueMetricOrAggregation(reader, serializer);
4143
case "buckets":
@@ -61,6 +63,8 @@ private IAggregation GetPercentilesMetricAggregation(JsonReader reader, JsonSeri
6163
{
6264
var metric = new PercentilesMetric();
6365
var percentileItems = new List<PercentileItem>();
66+
if (reader.TokenType == JsonToken.StartObject)
67+
reader.Read();
6468
while (reader.TokenType != JsonToken.EndObject)
6569
{
6670
var percentile = double.Parse(reader.Value as string);
@@ -156,7 +160,7 @@ private IAggregation GetDateHistogramAggregation(JsonReader reader, JsonSerializ
156160
var docCount = (reader.Value as long?).GetValueOrDefault(0);
157161
reader.Read();
158162

159-
var dateHistogram = new DateHistogramItem() {Key = key, KeyAsString = keyAsString, DocCount = docCount};
163+
var dateHistogram = new HistogramItem() {Key = key, KeyAsString = keyAsString, DocCount = docCount};
160164
dateHistogram.Aggregations = this.GetNestedAggregations(reader, serializer);
161165
return dateHistogram;
162166

src/Tests/Nest.Tests.Integration/Aggregations/BucketAggregationTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ public void DateHistogram()
236236
results.IsValid.Should().BeTrue();
237237
var bucket = results.Aggs.DateHistogram("bucket_agg");
238238
bucket.Items.Should().NotBeEmpty();
239+
var item = bucket.Items.First();
239240
}
240241

241242
}

src/Tests/Nest.Tests.Integration/Aggregations/ParseResponseItemsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public void DateHistogramItem()
100100
var firstAgg = results.Aggregations.First().Value as Bucket;
101101
firstAgg.Should().NotBeNull();
102102
firstAgg.Items.Should().NotBeEmpty();
103-
var grams = firstAgg.Items.OfType<DateHistogramItem>();
103+
var grams = firstAgg.Items.OfType<HistogramItem>();
104104
grams.Should().NotBeEmpty();
105105
}
106106

src/Tests/Nest.Tests.Integration/Core/Map/RootProperties/MapRootObjectPropertiesTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public void RootPropertiesShouldSerialize()
2626
.Dynamic()
2727
.Enabled()
2828
.IncludeInAll()
29-
.Path("full")
3029
);
3130
this.DefaultResponseAssertations(result);
3231
}

0 commit comments

Comments
 (0)