class Aerospike::Exp::HLL
HyperLogLog (HLL
) expression generator. See {Exp}.
The bin expression argument in these methods can be a reference to a bin or the result of another expression. Expressions that modify bin values are only used for temporary expression evaluation and are not permanently applied to the bin. HLL
modify expressions return the HLL
bin’s value.
Constants
- ADD
- COUNT
- DESCRIBE
- INIT
- INTERSECT_COUNT
- MAY_CONTAIN
- MODULE
- SIMILARITY
- UNION
- UNION_COUNT
Public Class Methods
Create expression that adds values to a HLL
set and returns HLL
set. If HLL
bin does not exist, use index_bit_count and min_hash_bit_count to create HLL
set.
Examples¶ ↑
# Add values to HLL
bin “a” and check count > 7 Exp.gt
(
HLLExp.getCount( HLLExp.add(HLLPolicy.Default, Exp.val(list), Exp.val(10), Exp.val(20), Exp.hllBin("a"))), Exp.val(7))
@param policy write policy, use {HLLPolicy#Default} for default @param list list bin or value expression of values to be added @param index_bit_count number of index bits expression. Must be between 4 and 16 inclusive. @param min_hash_bit_count number of min hash bits expression. Must be between 4 and 51 inclusive.
Also, index_bit_count + min_hash_bit_count must be <= 64.
@param bin HLL
bin or value expression
# File lib/aerospike/exp/exp_hll.rb, line 54 def self.add(list, bin, policy: CDT::HLLPolicy::DEFAULT, index_bit_count: Exp.val(-1), min_hash_bit_count: Exp.val(-1)) bytes = Exp.pack(nil, ADD, list, index_bit_count, min_hash_bit_count, policy.flags) add_write(bin, bytes) end
# File lib/aerospike/exp/exp_hll.rb, line 165 def self.add_read(bin, bytes, ret_type) Exp::Module.new(bin, bytes, ret_type, MODULE) end
# File lib/aerospike/exp/exp_hll.rb, line 161 def self.add_write(bin, bytes) Exp::Module.new(bin, bytes, Exp::Type::HLL, MODULE | Exp::MODIFY) end
Create expression that returns index_bit_count and min_hash_bit_count used to create HLL
bin in a list of longs. list is index_bit_count and list is min_hash_bit_count.
Examples¶ ↑
# Bin
“a” index_bit_count < 10 Exp.lt
(
ListExp.getByIndex(ListReturnType.VALUE, Exp::Type::INT, Exp.val(0), HLLExp.describe(Exp.hllBin("a"))), Exp.val(10))
# File lib/aerospike/exp/exp_hll.rb, line 131 def self.describe(bin) bytes = Exp.pack(nil, DESCRIBE) add_read(bin, bytes, Exp::Type::LIST) end
Create expression that returns estimated number of elements in the HLL
bin.
Examples¶ ↑
# HLL
bin “a” count > 7 Exp.gt
(HLLExp.getCount(Exp.hllBin(“a”)), Exp.val(7))
# File lib/aerospike/exp/exp_hll.rb, line 64 def self.get_count(bin) bytes = Exp.pack(nil, COUNT) add_read(bin, bytes, Exp::Type::INT) end
Create expression that returns estimated number of elements that would be contained by the intersection of these HLL
objects.
Examples¶ ↑
# Intersect count of HLL
bins “a” and “b” HLLExp.getIntersectCount(Exp.hllBin(“a”), Exp.hllBin(“b”))
# Intersect count of local HLL
list with bin “b” HLLExp.getIntersectCount(Exp.val(list), Exp.hllBin(“b”))
# File lib/aerospike/exp/exp_hll.rb, line 106 def self.get_intersect_count(list, bin) bytes = Exp.pack(nil, INTERSECT_COUNT, list) add_read(bin, bytes, Exp::Type::INT) end
Create expression that returns estimated similarity of these HLL
objects as a 64 bit float.
Examples¶ ↑
# Similarity of HLL
bins “a” and “b” >= 0.75 Exp.ge
(HLLExp.getSimilarity(Exp.hllBin(“a”), Exp.hllBin(“b”)), Exp.val(0.75))
# File lib/aerospike/exp/exp_hll.rb, line 117 def self.get_similarity(list, bin) bytes = Exp.pack(nil, SIMILARITY, list) add_read(bin, bytes, Exp::Type::FLOAT) end
Create expression that returns a HLL
object that is the union of all specified HLL
objects in the list with the HLL
bin.
Examples¶ ↑
# Union of HLL
bins “a” and “b” HLLExp.getUnion(Exp.hllBin(“a”), Exp.hllBin(“b”))
# Union of local HLL
list with bin “b” HLLExp.getUnion(Exp.val(list), Exp.hllBin(“b”))
# File lib/aerospike/exp/exp_hll.rb, line 78 def self.get_union(list, bin) bytes = Exp.pack(nil, UNION, list) add_read(bin, bytes, Exp::Type::HLL) end
Create expression that returns estimated number of elements that would be contained by the union of these HLL
objects.
Examples¶ ↑
# Union count of HLL
bins “a” and “b” HLLExp.getUnionCount(Exp.hllBin(“a”), Exp.hllBin(“b”))
# Union count of local HLL
list with bin “b” HLLExp.getUnionCount(Exp.val(list), Exp.hllBin(“b”))
# File lib/aerospike/exp/exp_hll.rb, line 92 def self.get_union_count(list, bin) bytes = Exp.pack(nil, UNION_COUNT, list) add_read(bin, bytes, Exp::Type::INT) end
Create expression that creates a new HLL
or resets an existing HLL
with minhash bits.
@param policy write policy, use {HLLPolicy#Default} for default @param index_bit_count number of index bits. Must be between 4 and 16 inclusive. @param min_hash_bit_count number of min hash bits. Must be between 4 and 51 inclusive.
Also, index_bit_count + min_hash_bit_count must be <= 64. Optional.
@param bin HLL
bin or value expression
# File lib/aerospike/exp/exp_hll.rb, line 33 def self.init(index_bit_count, bin, min_hash_bit_count: Exp.int_val(-1), policy: CDT::HLLPolicy::DEFAULT) bytes = Exp.pack(nil, INIT, index_bit_count, min_hash_bit_count, policy.flags) add_write(bin, bytes) end
Create expression that returns one if HLL
bin may contain all items in the list.
Examples¶ ↑
# Bin
“a” may contain value “x” ArrayList<Value> list = new ArrayList<Value>() list.add(Value.get(“x”)) Exp.eq
(HLLExp.mayContain(Exp.val(list), Exp.hllBin(“a”)), Exp.val(1))
# File lib/aerospike/exp/exp_hll.rb, line 143 def self.may_contain(list, bin) bytes = Exp.pack(nil, MAY_CONTAIN, list) add_read(bin, bytes, Exp::Type::INT) end