Significant Terms Aggregation Usageedit

Fluent DSL Exampleedit

s => s
.Aggregations(a => a
    .SignificantTerms("significant_names", st => st
        .Field(p => p.Name)
        .MinimumDocumentCount(10)
        .MutualInformation(mi => mi
            .BackgroundIsSuperSet()
            .IncludeNegatives()
        )
    )
)

Object Initializer Syntax Exampleedit

new SearchRequest<Project>
{
    Aggregations = new SignificantTermsAggregation("significant_names")
    {
        Field = Field<Project>(p => p.Name),
        MinimumDocumentCount = 10,
        MutualInformation = new MutualInformationHeuristic
        {
            BackgroundIsSuperSet = true,
            IncludeNegatives = true
        }
    }
}

Example json output. 

{
  "aggs": {
    "significant_names": {
      "significant_terms": {
        "field": "name",
        "min_doc_count": 10,
        "mutual_information": {
          "background_is_superset": true,
          "include_negatives": true
        }
      }
    }
  }
}

Handling Responsesedit

response.ShouldBeValid();
var sigNames = response.Aggs.SignificantTerms("significant_names");
sigNames.Should().NotBeNull();
sigNames.DocCount.Should().BeGreaterThan(0);