elasticsearch学习笔记(三)

elasticsearch学习笔记(三),第1张

elasticsearch学习笔记(三) elasticsearch核心概念 一、elasticsearch是基于Lucene开发的

Lucene是一个成熟的全文检索库,由Java语言编写,具有高性能、可伸缩的特点,并且开源、免费。

二、全文检索

索引系统通过扫描文章中的每一个词,对其创建索引,指明在文章中出现的次数和位置,当用户查询时,索引系统过就会根据事先简历的索引进行查找,并将查找的结果反馈给用户的检索方式

三、倒排索引

四、倒排索引的数据结构

五、倒排索引的倒排表压缩算法一:FOR-frame Of Reference

将后一个数字与前一个数值做差,然后归类用适合的数据长度保存details list

六、倒排索引的倒排表压缩算法二:RBM-RoaringBitmap

除以65536 取商与余数
由于商和余数均不会大于65536,所以可以用short类型(2Byte:16bit)来存储商和余数。
商由一个short[]存储作为key;余数作为Container

Container主要分为三类

1、ArrayContainer:使用Short[]类型来存储,Container每包含一个元素,大小都增加2Byte,最大为65536个元素,占用空间65536*2Byte=128kb

2、BitMapContainer:基于位图,固定一个包含有65536个bit的bitmap,其中每一位都表示0~65535的独立的数字,当对应位上有值时,则标记为1。这样一个bitmap长度固定为65536bit=8kb

3、RunContainer:标记一段连续的数据的首位数据,需要数据有规则的连续。
1,2,3…100W个 →[1,100W]
400WByte → 8Byte

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5677789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存