system.indexes.bitmap_indexes module¶
Concrete bitmap index implementations: sorted/unsorted, equality-encoded, and range-encoded.
- class system.indexes.bitmap_indexes.SortedBitmapIndex(bit_sequence_type: ~typing.Type[~system.interfaces.bit_sequence.UncompressedBitSequence] = <class 'system.bit_sequences.IntegerBitSequence'>, compression_type: ~typing.Type[~system.interfaces.bit_sequence.CompressedBitSequence] | None = None)[source]¶
Bases:
BitmapIndex,ABC,GenericAbstract base class for a sorted bitmap index.
- bulkload(data: Iterator[tuple[Key, Value]], key_prefix: str = '') None[source]¶
See
Index.bulkload().After the base bulkload, sorts the key/bit-sequence list by key (raising
ValueErrorif the keys are not sortable) and rebuilds the key-to-index map to reflect the sorted order.
- class system.indexes.bitmap_indexes.UnsortedBitmapIndex(bit_sequence_type: ~typing.Type[~system.interfaces.bit_sequence.UncompressedBitSequence] = <class 'system.bit_sequences.IntegerBitSequence'>, compression_type: ~typing.Type[~system.interfaces.bit_sequence.CompressedBitSequence] | None = None)[source]¶
Bases:
BitmapIndex,ABC,GenericAbstract base class for an unsorted bitmap index.
- class system.indexes.bitmap_indexes.EqualityEncodedBitmapIndex(bit_sequence_type: ~typing.Type[~system.interfaces.bit_sequence.UncompressedBitSequence] = <class 'system.bit_sequences.IntegerBitSequence'>, compression_type: ~typing.Type[~system.interfaces.bit_sequence.CompressedBitSequence] | None = None)[source]¶
Bases:
BitmapIndex,ABC,GenericImplements an equality encoded bitmap index structure.
- bulkload(data: Iterator[tuple[Key, Value]], key_prefix: str = '') None[source]¶
See
Index.bulkload().After the base bulkload, compresses all bit sequences in one pass if compression is enabled (cheaper than inserting into compressed sequences).
- get_equal(key: Key) BitSequence[source]¶
See
BitmapIndex.get_equal().Equality-encoded variant: returns the key’s stored bit sequence directly, or an empty bit sequence if the key is absent.
- class system.indexes.bitmap_indexes.SortedEqualityEncodedBitmapIndex(bit_sequence_type: ~typing.Type[~system.interfaces.bit_sequence.UncompressedBitSequence] = <class 'system.bit_sequences.IntegerBitSequence'>, compression_type: ~typing.Type[~system.interfaces.bit_sequence.CompressedBitSequence] | None = None)[source]¶
Bases:
EqualityEncodedBitmapIndex,SortedBitmapIndex,GenericImplements a sorted equality encoded bitmap index structure.
- class system.indexes.bitmap_indexes.UnsortedEqualityEncodedBitmapIndex(bit_sequence_type: ~typing.Type[~system.interfaces.bit_sequence.UncompressedBitSequence] = <class 'system.bit_sequences.IntegerBitSequence'>, compression_type: ~typing.Type[~system.interfaces.bit_sequence.CompressedBitSequence] | None = None)[source]¶
Bases:
EqualityEncodedBitmapIndex,UnsortedBitmapIndex,GenericImplements an unsorted equality encoded bitmap index structure.
- class system.indexes.bitmap_indexes.RangeEncodedBitmapIndex(bit_sequence_type: ~typing.Type[~system.interfaces.bit_sequence.UncompressedBitSequence] = <class 'system.bit_sequences.IntegerBitSequence'>, compression_type: ~typing.Type[~system.interfaces.bit_sequence.CompressedBitSequence] | None = None)[source]¶
Bases:
SortedBitmapIndex,GenericImplements range encoded bitmap index structure. Each bit_sequence contains all values whose keys are less or equal to the keys represented by the bit_sequence.
- bulkload(data: Iterator[tuple[Key, Value]], key_prefix: str = '') None[source]¶
See
Index.bulkload().Range-encoded variant: after building the sorted bitmap, propagates each key’s values into every bit sequence of the greater-or-equal keys so that each bit sequence holds all values with keys up to its own, then compresses if enabled.
- get_equal(key: Key) BitSequence[source]¶
See
BitmapIndex.get_equal().Range-encoded variant: recovers the equal set by subtracting the previous (next-smaller) key’s cumulative bit sequence from this key’s, returning an empty sequence for an absent key and the raw sequence at index 0.