Histogram Aggregation Usage

edit

Fluent DSL example

edit
a => a
.Histogram("commits", h => h
    .Field(p => p.NumberOfCommits)
    .Interval(100)
    .MinimumDocumentCount(1)
    .Order(HistogramOrder.KeyDescending)
    .Offset(1.1)
)

Object Initializer syntax example

edit
new HistogramAggregation("commits")
{
    Field = Field<Project>(p => p.NumberOfCommits),
    Interval = 100,
    MinimumDocumentCount = 1,
    Order = HistogramOrder.KeyDescending,
    Offset = 1.1
}

Example json output.

{
  "commits": {
    "histogram": {
      "field": "numberOfCommits",
      "interval": 100.0,
      "min_doc_count": 1,
      "order": {
        "_key": "desc"
      },
      "offset": 1.1
    }
  }
}

Handling Responses

edit
response.ShouldBeValid();
var commits = response.Aggregations.Histogram("commits");
commits.Should().NotBeNull();
commits.Buckets.Should().NotBeNull();
commits.Buckets.Count.Should().BeGreaterThan(0);
foreach (var item in commits.Buckets)
    item.DocCount.Should().BeGreaterThan(0);