Class NormalSketch
java.lang.Object
com.yahoo.vespa.objects.Selectable
com.yahoo.vespa.objects.Identifiable
com.yahoo.searchlib.aggregation.hll.Sketch<NormalSketch>
com.yahoo.searchlib.aggregation.hll.NormalSketch
- All Implemented Interfaces:
Cloneable
Sketch used by the HyperLogLog (HLL) algorithm.
- Author:
- bjorncs
-
Field Summary
-
Constructor Summary
ConstructorDescriptionCreate a sketch with the default precision given byHyperLogLog.DEFAULT_PRECISION
.NormalSketch
(int precision) Create a sketch with a given HLL precision parameter. -
Method Summary
Modifier and TypeMethodDescriptionvoid
aggregate
(int hash) Aggregates the hash value.void
Aggregates the hash values.byte[]
data()
Returns the underlying byte array backing the sketch.boolean
int
hashCode()
void
merge
(NormalSketch other) Lossless merge of sketches.protected void
onDeserialize
(com.yahoo.vespa.objects.Deserializer buf) protected int
protected void
onSerialize
(com.yahoo.vespa.objects.Serializer buf) Serializes the Sketch.int
size()
Sketch size.toString()
Methods inherited from class com.yahoo.vespa.objects.Identifiable
clone, create, createFromId, deserialize, deserializeOptional, deserializeWithId, equals, getClassId, getRawUtf8Bytes, getUtf8, putUtf8, registerClass, serialize, serializeOptional, serializeWithId, visitMembers
Methods inherited from class com.yahoo.vespa.objects.Selectable
select, select, selectMembers
-
Field Details
-
classId
public static final int classId
-
-
Constructor Details
-
NormalSketch
public NormalSketch()Create a sketch with the default precision given byHyperLogLog.DEFAULT_PRECISION
. -
NormalSketch
public NormalSketch(int precision) Create a sketch with a given HLL precision parameter.- Parameters:
precision
- The precision parameter used by HLL. Determines the size of the sketch.
-
-
Method Details
-
merge
Lossless merge of sketches. Performs a pairwise maximum on the underlying data array.- Specified by:
merge
in classSketch<NormalSketch>
- Parameters:
other
- Other sketch
-
aggregate
Aggregates the hash values.- Specified by:
aggregate
in classSketch<NormalSketch>
- Parameters:
hashValues
- Provides an iterator for the hash values
-
aggregate
public void aggregate(int hash) Aggregates the hash value.- Specified by:
aggregate
in classSketch<NormalSketch>
- Parameters:
hash
- Hash value.
-
onSerialize
protected void onSerialize(com.yahoo.vespa.objects.Serializer buf) Serializes the Sketch. Serialization format ================== Original size: 4 bytes Compressed size: 4 bytes Compressed data: N * 1 bytes Invariant: compressed size <= original size Special case: compressed size == original size => data is uncompressed- Overrides:
onSerialize
in classcom.yahoo.vespa.objects.Identifiable
- Parameters:
buf
- Serializer
-
onDeserialize
protected void onDeserialize(com.yahoo.vespa.objects.Deserializer buf) - Overrides:
onDeserialize
in classcom.yahoo.vespa.objects.Identifiable
-
data
public byte[] data()Returns the underlying byte array backing the sketch.- Returns:
- The underlying sketch data
-
size
public int size()Sketch size.- Returns:
- Number of buckets in the sketch.
-
equals
- Overrides:
equals
in classcom.yahoo.vespa.objects.Identifiable
-
hashCode
public int hashCode()- Overrides:
hashCode
in classcom.yahoo.vespa.objects.Identifiable
-
onGetClassId
protected int onGetClassId()- Overrides:
onGetClassId
in classcom.yahoo.vespa.objects.Identifiable
-
toString
- Overrides:
toString
in classcom.yahoo.vespa.objects.Identifiable
-