在Lucene4的时候进行段合并的时候,我们解压所有字段,然后再把他们压缩到新段中,虽然LZ4压缩算法很快,但是也会耗费大量的CPU。
现在Lucene5已经不再这么做了,而是直接拷贝这些已经被压缩的数据。拷贝也有个问题,就是段的最后一块总是不完整的,如果,虽然这一块很小(小于16K),但是日积月累的话,还是会增加压缩比。所以我们增加了一个阈值,如果这些不完整的快足够多的话,我们再段合并的时候就使用老的方式(重新解压,再重新压缩)
原文:https://www.elastic.co/blog/store-compression-in-lucene-and-elasticsearch