Class AbstractHyperLogLogPlusPlus
java.lang.Object
org.elasticsearch.search.aggregations.metrics.AbstractHyperLogLogPlusPlus
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,org.elasticsearch.common.lease.Releasable
- Direct Known Subclasses:
HyperLogLogPlusPlus
public abstract class AbstractHyperLogLogPlusPlus
extends java.lang.Object
implements org.elasticsearch.common.lease.Releasable
Base class for HLL++ algorithms.
It contains methods for cloning and serializing the data structure.
-
Field Summary
Fields Modifier and Type Field Description static boolean
HYPERLOGLOG
static boolean
LINEAR_COUNTING
static int
MAX_PRECISION
static int
MIN_PRECISION
protected int
p
-
Constructor Summary
Constructors Constructor Description AbstractHyperLogLogPlusPlus(int precision)
-
Method Summary
Modifier and Type Method Description abstract long
cardinality(long bucketOrd)
Returns the current computed cardinalityAbstractHyperLogLogPlusPlus
clone(long bucketOrd, BigArrays bigArrays)
Clone the data structure at the given bucketabstract void
collect(long bucketOrd, long hash)
Collect a value in the given bucketboolean
equals(long thisBucket, AbstractHyperLogLogPlusPlus other, long otherBucket)
protected abstract boolean
getAlgorithm(long bucketOrd)
Algorithm used in the given bucketprotected abstract AbstractHyperLogLog.RunLenIterator
getHyperLogLog(long bucketOrd)
Get HyperLogLog algorithmprotected abstract AbstractLinearCounting.HashesIterator
getLinearCounting(long bucketOrd)
Get linear counting algorithmint
hashCode(long bucket)
abstract long
maxOrd()
Get the number of data structuresint
precision()
Precision of the algorithmstatic AbstractHyperLogLogPlusPlus
readFrom(StreamInput in, BigArrays bigArrays)
void
writeTo(long bucket, StreamOutput out)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.elasticsearch.common.lease.Releasable
close
-
Field Details
-
LINEAR_COUNTING
public static final boolean LINEAR_COUNTING- See Also:
- Constant Field Values
-
HYPERLOGLOG
public static final boolean HYPERLOGLOG- See Also:
- Constant Field Values
-
MIN_PRECISION
public static final int MIN_PRECISION- See Also:
- Constant Field Values
-
MAX_PRECISION
public static final int MAX_PRECISION- See Also:
- Constant Field Values
-
p
protected final int p
-
-
Constructor Details
-
AbstractHyperLogLogPlusPlus
public AbstractHyperLogLogPlusPlus(int precision)
-
-
Method Details
-
getAlgorithm
protected abstract boolean getAlgorithm(long bucketOrd)Algorithm used in the given bucket -
getLinearCounting
Get linear counting algorithm -
getHyperLogLog
Get HyperLogLog algorithm -
maxOrd
public abstract long maxOrd()Get the number of data structures -
collect
public abstract void collect(long bucketOrd, long hash)Collect a value in the given bucket -
clone
Clone the data structure at the given bucket -
writeTo
- Throws:
java.io.IOException
-
readFrom
public static AbstractHyperLogLogPlusPlus readFrom(StreamInput in, BigArrays bigArrays) throws java.io.IOException- Throws:
java.io.IOException
-
equals
-
hashCode
public int hashCode(long bucket) -
precision
public int precision()Precision of the algorithm -
cardinality
public abstract long cardinality(long bucketOrd)Returns the current computed cardinality
-