Class AbstractLinearCounting
java.lang.Object
org.elasticsearch.search.aggregations.metrics.AbstractLinearCounting
public abstract class AbstractLinearCounting
extends java.lang.Object
Linear counter, implemented based on pseudo code from
http://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/40671.pdf and its appendix
https://docs.google.com/document/d/1gyjfMHy43U9OWBXxfaeG-3MjGzejW1dlpyMwEYAAWEI/view?fullscreen
Trying to understand what this class does without having read the paper is considered adventurous.
The algorithm just keep a record of all distinct values provided encoded as an integer.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceAbstractLinearCounting.HashesIteratorIterator over the hash values -
Field Summary
Fields Modifier and Type Field Description static intMAX_PRECISIONstatic intMIN_PRECISIONprotected intp -
Constructor Summary
Constructors Constructor Description AbstractLinearCounting(int precision) -
Method Summary
Modifier and Type Method Description protected abstract intaddEncoded(long bucketOrd, int encoded)Add encoded value to the linear counting.longcardinality(long bucketOrd)Returns the current computed cardinalityintcollect(long bucketOrd, long hash)intprecision()Precision of the algorithmprotected abstract intsize(long bucketOrd)number of values in the counter.protected abstract AbstractLinearCounting.HashesIteratorvalues(long bucketOrd)return the current values in the counter.
-
Field Details
-
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
-
AbstractLinearCounting
public AbstractLinearCounting(int precision)
-
-
Method Details
-
addEncoded
protected abstract int addEncoded(long bucketOrd, int encoded)Add encoded value to the linear counting. Implementor should only accept the value if it has not been seen before. -
size
protected abstract int size(long bucketOrd)number of values in the counter. -
values
return the current values in the counter. -
collect
public int collect(long bucketOrd, long hash) -
cardinality
public long cardinality(long bucketOrd)Returns the current computed cardinality -
precision
public int precision()Precision of the algorithm
-