Direct Known Subclasses:
GeoHashCellIdSource, GeoTileCellIdSource

public abstract class CellIdSource extends ValuesSource.Numeric
  • Field Details

    • circuitBreakerConsumer

      protected final LongConsumer circuitBreakerConsumer
  • Constructor Details

  • Method Details

    • precision

      protected final int precision()
    • isFloatingPoint

      public final boolean isFloatingPoint()
      Description copied from class: ValuesSource.Numeric
      Are values of this field better represented as a double precision floating point numbers (true) or 64 bit signed numbers (false)?

      Aggregations may, if they feel it is important, use this to pick which of ValuesSource.Numeric.longValues(org.apache.lucene.index.LeafReaderContext) and ValuesSource.Numeric.doubleValues(org.apache.lucene.index.LeafReaderContext) is better for the field values. Most metric aggregations are quite happy to operate on floating point numbers all the time and never call this. Bucketing aggregations that want to enumerate all values (like TermsAggregator) will want to check this but bucketing aggregations that just compare values (RangeAggregator) are, like metric aggregators, fine ignoring it.

      Specified by:
      isFloatingPoint in class ValuesSource.Numeric
    • longValues

      public final org.apache.lucene.index.SortedNumericDocValues longValues(org.apache.lucene.index.LeafReaderContext ctx)
      Description copied from class: ValuesSource.Numeric
      Get a 64 bit signed view into the values in this leaf.

      If the values have precision beyond the decimal point then they'll be "narrowed" but they'll accurately represent values up to Long.MAX_VALUE.

      Specified by:
      longValues in class ValuesSource.Numeric
    • unboundedCellSingleValue

      protected abstract org.apache.lucene.index.NumericDocValues unboundedCellSingleValue(GeoPointValues values)
      Generate an unbounded iterator of grid-cells for singleton case.
    • boundedCellSingleValue

      protected abstract org.apache.lucene.index.NumericDocValues boundedCellSingleValue(GeoPointValues values, GeoBoundingBox boundingBox)
      Generate a bounded iterator of grid-cells for singleton case.
    • unboundedCellMultiValues

      protected abstract org.apache.lucene.index.SortedNumericDocValues unboundedCellMultiValues(MultiGeoPointValues values)
      Generate an unbounded iterator of grid-cells for multi-value case.
    • boundedCellMultiValues

      protected abstract org.apache.lucene.index.SortedNumericDocValues boundedCellMultiValues(MultiGeoPointValues values, GeoBoundingBox boundingBox)
      Generate a bounded iterator of grid-cells for multi-value case.
    • doubleValues

      public final SortedNumericDoubleValues doubleValues(org.apache.lucene.index.LeafReaderContext ctx)
      Description copied from class: ValuesSource.Numeric
      Get a double precision floating point view into the values in this leaf.

      These values will preserve any precision beyond the decimal point but are limited to double's standard 53 bit mantissa. If the "native" field has values that can't be accurately represented in those 53 bits they'll be "widened"

      Specified by:
      doubleValues in class ValuesSource.Numeric
    • bytesValues

      public final SortedBinaryDocValues bytesValues(org.apache.lucene.index.LeafReaderContext ctx)
      Description copied from class: ValuesSource
      Get a byte array like view into the values. This is the "native" way to access ValuesSource.Bytes-style values.
      Specified by:
      bytesValues in class ValuesSource
    • pointInBounds

      protected boolean pointInBounds(double lon, double lat)
      checks if the point is inside the bounding box. If the method return true, the point should be added to the final result, otherwise implementors might need to check if the point grid intersects the bounding box. This method maybe faster than having to compute the bounding box for each point grid.