elasticsearch 字段常用配置参数解释
主要解释下面3个常用的参数:
- index 参数
- store 与 _source 参数
- doc_value 参数
1、index 参数
默认为true。当设置为true时,代表需要对该字段进行检索,也即倒排查询,根据 query 条件 查询 doc_id
2、store 与 _source 参数
这2个参数是“互补”的。一般而言,_source 设置成 false,然后具体需要获取哪个字段时,将该字段的 store 选项设置成true。因为开启 _source ,表示直接存储的原始的 doc 文件内容,占用的磁盘空间较大。而 store 则表示只存储此字段,采用的是:“行存的方式”(by the way doc_value 是列存方式),相比于_source 存储原始的doc文件,“行存方式” 会对该字段建“索引”(索引文件fdx、fdm,数据文件fdt),从而能够高效访问。
3、doc_value
默认开启。开启doc_value意味着:在写入doc时,会对该字段创建:列存索引,用于排序聚合。类似于HBase,某字段开启 doc_value 后,会把所有文档中该字段的值放在“一起存储”,由于同一个字段它的类型是确定的,那么该字段所有的值都放在一起存储能够很好地使用压缩算法进行压缩存储。
举例:有个ES索引有100个doc,其中有个字段是“销量字段 sale_cnt”,它是int型的,对销量字段开启了doc_value,则这100个doc的 sale_cnt 字段的值 都会“放在一起存储”,由于这些值都是 int 型的,那就可以用各种数据结构做存储优化(比如压缩算法)
当需要对 销量字段 做排序时,显然是只有获取 销量字段 sale_cnt 所有的值才能排序,那么开启 doc_value 就能大大加速排序了。这也是为什么官方文档中说:doc_value 用于排序聚合的原因。
总结
index 参数代表建立倒排索引结构,是倒排存储。而:store 和 doc_value 则代表建立:正排索引,正排索引有2种存储方式:行存和列存,其中 store 采用行存方式实现,doc_value 采用列存方式实现。
参考链接
index参数:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-index.html
_source参数:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html
store参数:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-store.html
doc_value参数:https://www.elastic.co/guide/en/elasticsearch/reference/current/doc-values.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2019-08-23 基于word2vec的文档向量模型的应用
2016-08-23 使用Eclipse Memory Analyzer 进行JAVA内存泄露分析