Roaring bitmaps,咆哮的位图
虽然觉得这个翻译有点搞笑,但先这样吧,挺有气势的,
这用于lucene的数据压缩,出现是因为数组列表和位图都满足不了需求了
https://www.cnblogs.com/dreamroute/p/8484457.html
上面的文章谈到为什么以4096为分界,不太准确,所以我找了下面这个,应该是原文,因为位图用8kB可以存65536个数字(每个数字范围在0-65536),而用数组,每个数字用两个字节存,65536个数字就需要65536*2/1024kB=128kB的内存,数组的内存和文档数的关系是 memory = 2 * 文档数,所以只有8kB的话数组只能存4096个数,所以如果文档数超过4096了,用位图存就更节省内存。
https://www.elastic.co/cn/blog/frame-of-reference-and-roaring-bitmaps