Sampler Aggregation Usage

edit

Fluent DSL example

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

Object Initializer syntax example

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

Example json output.

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

Handling Responses

edit
response.ShouldBeValid();

var sample = response.Aggs.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);