java.lang.Object
org.elasticsearch.search.aggregations.bucket.terms.heuristic.SignificanceHeuristic
All Implemented Interfaces:
NamedWriteable, Writeable, ToXContent, ToXContentFragment
Direct Known Subclasses:
JLHScore, NXYSignificanceHeuristic, PercentageScore, ScriptHeuristic

public abstract class SignificanceHeuristic extends Object implements NamedWriteable, ToXContentFragment
Heuristic for that SignificantTerms uses to pick out significant terms.
  • Constructor Details

    • SignificanceHeuristic

      public SignificanceHeuristic()
  • Method Details

    • getScore

      public abstract double getScore(long subsetFreq, long subsetSize, long supersetFreq, long supersetSize)
      Parameters:
      subsetFreq - The frequency of the term in the selected sample
      subsetSize - The size of the selected sample (typically number of docs)
      supersetFreq - The frequency of the term in the superset from which the sample was taken
      supersetSize - The size of the superset from which the sample was taken (typically number of docs)
      Returns:
      a "significance" score
    • checkFrequencyValidity

      protected void checkFrequencyValidity(long subsetFreq, long subsetSize, long supersetFreq, long supersetSize, String scoreFunctionName)
    • rewrite

      Provides a hook for subclasses to provide a version of the heuristic prepared for execution on data on the coordinating node.
      Parameters:
      reduceContext - the reduce context on the coordinating node
      Returns:
      a version of this heuristic suitable for execution
    • rewrite

      public SignificanceHeuristic rewrite(AggregationContext context)
      Provides a hook for subclasses to provide a version of the heuristic prepared for execution on data on a shard.
      Parameters:
      context - the shard context on the data node
      Returns:
      a version of this heuristic suitable for execution