Sampler Aggregation Usage

edit

Fluent DSL example

edit
a => a
.Sampler("sample", sm => sm
    .ShardSize(200)
    .Aggregations(aa => aa
        .SignificantTerms("significant_names", st => st
            .Field(p => p.Name)
        )
    )
)

Object Initializer syntax example

edit
new SamplerAggregation("sample")
{
    ShardSize = 200,
    Aggregations = new SignificantTermsAggregation("significant_names")
    {
        Field = "name"
    }
}

Example json output.

{
  "sample": {
    "sampler": {
      "shard_size": 200
    },
    "aggs": {
      "significant_names": {
        "significant_terms": {
          "field": "name"
        }
      }
    }
  }
}

Handling Responses

edit
response.ShouldBeValid();

var sample = response.Aggregations.Sampler("sample");
sample.Should().NotBeNull();
var sigTags = sample.SignificantTerms("significant_names");
sigTags.Should().NotBeNull();
sigTags.DocCount.Should().BeGreaterThan(0);
if (TestConfiguration.Instance.InRange(">=5.5.0"))
    sigTags.BgCount.Should().BeGreaterThan(0);