当前位置: 首页 > news >正文

ElasticSearch Roaring bitmap 和跳表联合查询

ElasticSearch Roaring map

  1. 先把所有数按65535划分, 划分方法就是求商和余数,商代表数字最终在哪一块,余数代表最终在块内的数字
    比如 1, 65536, 65537, 131073
    则分成三个block: 1 | 1,2 | 3

  2. 对每一块的数据做判断,如果数据量大于4096,就用bitmap对这一块编码;否则保持不变,用原来对short格式。
    bitmap编码: 比如 [1, 2, 5, 7]编码后11001001, 即每一位代表一个数

  3. 为什么用4096划分?
    固定每块需要内存65535位,这种情况下,short最多存4096个数,大于4096只能用bitmap,小于4096没必要做转换,直接short就可以了。

联合查询 使用跳表

  1. 比如3个筛选条件, 共查处3个postid list , 每个list都是顺序的
  2. 把list按从数量从最少到最多排列,比如 l1 = [1, 10, 20], l2 = [1, 5, 10, 15, 20], l3 =[2, 4, 8, 10, 15 ,18, 20]
    第一个用10举例,10有两个尾巴节点,一个指向自己的20,一个指向 l2的10,这样就直接跳到了l2的10,就不需要再查l2的5了; 同样l2的10指向l3的10, 就可以跳过l3的2 4 8

  3. 如果是bitmap 不是short,直接按位与

转载于:https://www.cnblogs.com/wangjiale1024/p/10868357.html

相关文章:

  • Redis(一)----安装及基本使用
  • Spring Cloud(3):Ribbon的使用
  • RESTful API批量操作的实现
  • Node.js原生路由
  • C语言基础:break语句使用范例源码
  • 第六次实训作业
  • C# — MongoDB数据库安装
  • k8s 三节点签发所需证书
  • 经典书籍
  • k8s flanneld网络配置
  • 第六章小结(图)
  • SUSE12.2 编译usbutils
  • 类与类加载器
  • 红帽证书
  • [iOS]随机生成UUID通用唯一识别码
  • [译] React v16.8: 含有Hooks的版本
  • 03Go 类型总结
  • 2017年终总结、随想
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • es6
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • js对象的深浅拷贝
  • node入门
  • October CMS - 快速入门 9 Images And Galleries
  • PhantomJS 安装
  • python docx文档转html页面
  • SpringBoot 实战 (三) | 配置文件详解
  • Web设计流程优化:网页效果图设计新思路
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 事件委托的小应用
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #Linux(Source Insight安装及工程建立)
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)c52学习之旅-简单了解单片机
  • (分布式缓存)Redis分片集群
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)Linq学习笔记
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net 设置默认首页
  • .Net6 Api Swagger配置
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题