If you look at `CompressedBinaryDocValues` in Lucene, this impl slices the terms dictionary into blocks and compresses blocks by trying to share common prefixes between terms. The implementation is slow to seek by ord because it needs to go to the beginning of the block and then iterate in order up to the ordinal that is looked up. On the other hand, sequential access is very fast.