首页 > 编程语言 >为什么倒排索引不采用zlib这样的字典压缩算法——因为没法直接使用啊

为什么倒排索引不采用zlib这样的字典压缩算法——因为没法直接使用啊

时间:2023-08-03 13:33:07浏览次数:32  
标签:倒排 zstd 压缩 zlib 索引 压缩算法 字典

看了下压缩算法的发展历史,根据倒排索引的数据结构特点,个人认为zstd不适合做倒排索引压缩,举例说明下:

假设有一份文档倒排列表为:[300, 302, 303, 332],对于这组倒排数据,是没法***直接***采用zstd这类字典压缩算法的,因为里面没有重复数据(字典压缩通常重复数据较多,例如一个重复单词较多的txt文档适合zstd字典压缩)。

但是,如果对他们做差值运算后变为[300, 2, 1, 29],实际上你会发现2,1,29这些数字比原始数据小得多而可以用更少的位数来存储。这就是目前倒排索引使用的压缩算法原理。

 

综上所述,es里原始数据其实比较适合zstd算法,但是由于其内置了Lz4,替换的价值不大。

补充:

 

(1)压缩算法的发展历史(见: ),压缩算法的分类如下:

Lossless

 

Entropy type

 

 

Dictionary type

 

Other types

 

其中,熵编码方法是倒排索引压缩普遍采用的算法,例如上面标红的golomb或者Shannon–Fano–Elias算法,而字典压缩是一般性数据的压缩。

 

(2)倒排索引压缩的算法历史(见: )

标签:倒排,zstd,压缩,zlib,索引,压缩算法,字典
From: https://blog.51cto.com/u_11908275/6948457

相关文章

  • 简单解压缩算法
    题目描述现需要实现一种算法,能将一组压缩字符串还原成原始字符串,还原规则如下:字符后面加数字表示重复字符次。例如:压缩内容为,表示原始字符串为花括号中的字符串加数字表示花括号中的字符重复次。例如压缩内容为表示原始字符串为字符加和花括号后面加,支持任意的嵌套,包括互相嵌......
  • 分布式搜索 - 什么是倒排索引
    这个问题是近段时间被问的最多的,理清思路就更好理解了,下面贴出来,也配合表格辅助理解。其实很多搜索引擎都是基于倒排索引,比如luncene,solr以及elasticsearch正排索引 聊倒排搜索之前先来看看正排索引,正排其实就是数据库表,他通过id和数据进行关联,如下:我们可以通过搜索id,来获得......
  • centos7中 configure: error: zlib development files not found
     01、系统[liujiaxin01@PC1~]$cat/etc/redhat-release##centos7.6发行版CentOSLinuxrelease7.6.1810(Core) 002、问题[[email protected]]$./configure##出现如下报错 003、解决方法[root@PC1~]#yum-yinstallzlibzlib......
  • 简述倒排索引
    倒排索引是什么?1.2倒排索引倒排索引的概念是基于MySQL这样的正向索引而言的。1.2.1正向索引那么什么是正向索引呢?例如给下表(tb_goods)中的id创建索引:如果是根据id查询,那么直接走索引,查询速度非常快。但如果是基于title做模糊查询,只能是逐行扫描数据,流程如下:1)用户搜索数据......
  • dumpbin工具使用-由zlib编译前缀少加预处理器命令引起的异常-扩展
    对zlib使用vs2019编译,没有在预处理器中加前缀命令,导致编译出来的zlib.dll与项目之前使用的函数名不一致,运行报错。报错信息:无法在DLL“libz64”中找到名为“Z_inflateEnd”的入口点。 在z.conf中有以下注释:/**Ifyou*really*needauniqueprefixforalltypesandl......
  • 语音信号的哈夫曼编码压缩解压缩算法matlab仿真,输出编码后数据大小,编码树等指标
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要        利用哈夫曼编码进行信息通信可以较大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码......
  • Could not locate zlibwapi.dll. Please make sure it is in your library path
    再跑CNN程序的时候报了这个错2023-06-2321:11:52.069321:Itensorflow/core/platform/cpu_feature_guard.cc:151]ThisTensorFlowbinaryisoptimizedwithoneAPIDeepNeuralNetworkLibrary(oneDNN)tousethefollowingCPUinstructionsinperformance-criticalop......
  • Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
     001、问题cmake报错[root@PC1build]#cmake.. 002、解决方法,下载zlib并安装官网:http://www.zlib.net/a、下载 b、解压并安装[root@PC1software]#tar-xzvfzlib-1.2.13.tar.gz[root@PC1software]#cdzlib-1.2.13/[[email protected]]#./configur......
  • 基于DCT变换和ZigZag的图像压缩算法matlab性能仿真,仿真输出不同压缩率与图像质量的关
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要图像压缩是一种广泛应用的技术,它能够在不影响图像质量的前提下,减少图像所占用的存储空间。本文将介绍一种基于离散余弦变换(DiscreteCosineTransform,简称DCT)和ZigZag扫描的图像压缩算法,并探讨不同压缩率与图像质......
  • 基于DCT变换和ZigZag的图像压缩算法matlab性能仿真,仿真输出不同压缩率与图像质量的关
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要       图像压缩是一种广泛应用的技术,它能够在不影响图像质量的前提下,减少图像所占用的存储空间。本文将介绍一种基于离散余弦变换(DiscreteCosineTransform,简称DCT)和ZigZag扫描的图像压缩算法,并探讨......