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:
java.lang.Cloneable
public class NormalSketch extends Sketch<NormalSketch>
Sketch used by the HyperLogLog (HLL) algorithm.- Author:
- bjorncs
-
-
Field Summary
Fields Modifier and Type Field Description static int
classId
-
Constructor Summary
Constructors Constructor Description NormalSketch()
Create a sketch with the default precision given byHyperLogLog.DEFAULT_PRECISION
.NormalSketch(int precision)
Create a sketch with a given HLL precision parameter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
aggregate(int hash)
Aggregates the hash value.void
aggregate(java.lang.Iterable<java.lang.Integer> hashValues)
Aggregates the hash values.byte[]
data()
Returns the underlying byte array backing the sketch.boolean
equals(java.lang.Object o)
int
hashCode()
void
merge(NormalSketch other)
Lossless merge of sketches.protected void
onDeserialize(com.yahoo.vespa.objects.Deserializer buf)
protected int
onGetClassId()
protected void
onSerialize(com.yahoo.vespa.objects.Serializer buf)
Serializes the Sketch.int
size()
Sketch size.java.lang.String
toString()
-
-
-
Constructor Detail
-
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 Detail
-
merge
public void merge(NormalSketch other)
Lossless merge of sketches. Performs a pairwise maximum on the underlying data array.- Specified by:
merge
in classSketch<NormalSketch>
- Parameters:
other
- Other sketch
-
aggregate
public void aggregate(java.lang.Iterable<java.lang.Integer> hashValues)
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
public boolean equals(java.lang.Object o)
- 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
public java.lang.String toString()
- Overrides:
toString
in classcom.yahoo.vespa.objects.Identifiable
-
-