网站首页 > 博客文章 正文
对于任何数据存储工具,都应该清楚明了的知道其数据存储结构。下面说说elasticsearch中数据存储的一些关键点
倒排索引
倒排索引本质是哈希表,完成由搜索词到文档id的映射,这也是elasticsearch搜索比较快速高效的一个重要原因。
也就是说在存储数据的时候,先进行数据分析,完成可搜索的词条到文档的映射。
Doc Value
完成文档到词项的映射,在索引数据与建立倒排索引时同时建立doc values。主要用于排序,聚合。
除了analyzed string字段之外,其他字段默认都会记录doc value。doc values的存储使用了一些压缩机制。对于数字类型字段,一般取最大公约数,然后只记录其倍数。如果没有合适的最大公约数,取最小的数值,然后记录其差值。
如果某个字段不需要这个功能呢,可以通过配置字段的属性:"doc_values": false 来禁用。
基于lucene的存储结构
Lucene是一个功能强大的搜索库,但是基于Lucene进行开发比较复杂。ElasticSearch是基于lucene开发的搜索引擎,提供了更简单易用的API。
索引实际上是lucene中的概念,一个索引由多个索引段构成,大部分的场景是写一次,读多次。当满足某些条件时,多个索引段会合并成一个更大的索引段。索引段的减少有助于搜索效率的提高(可能是lucene内部原理决定的),但是频繁的段合并会影响性能。
Elasticsearch中的每次刷新都会新创建一个段,新创建的段里面的数据在下一次刷新之前是不会被搜索到的。ES的段合并是在后台进行的。
存储数据时的数据流向
index buffer -> filesystem cache -> 磁盘
第一个过程是refresh操作,第二个过程称为flush操作。
如果读完这篇文章有很多疑惑之处,请阅读es系列之前的文章:
猜你喜欢
- 2024-10-27 MySQL 为什么使用数据索引能提高效率
- 2024-10-27 Elasticsearch 在地理信息空间索引的探索和演进
- 2024-10-27 终于有人把Elasticsearch原理讲透了(二)
- 2024-10-27 PostgreSQL技术内幕6:PostgreSQL索引技术
- 2024-10-27 ElasticSearch的分布式架构原理(吐血整理!)
- 2024-10-27 「漫画」elasticsearch原理就是这么简单(上)
- 2024-10-27 Elasticsearch读书笔记(二)(elasticsearch 书推荐)
- 2024-10-27 搜索引擎原理系列教程:收录、索引、排名
- 2024-10-27 什么是预处理: 预处理简称为“索引”
- 2024-10-27 陈年SEO:解密百度SEO排序影响因素
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 362℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)