Elasticsearch缓存、断路器与集群发现配置详解
1. 字段数据缓存
字段数据缓存并非简单功能,它旨在尽可能节省内存。Elasticsearch根据数据类型为字段数据缓存提供了几种格式,可通过在字段的fielddata对象中指定format属性来设置存储在字段数据缓存中的内部数据格式,例如:
"tag" : { "type" : "string", "fielddata" : { "format" : "paged_bytes" } }1.1 基于字符串的字段
对于基于字符串的字段,Elasticsearch提供了三种字段数据缓存格式:
| 格式 | 说明 | 内存使用 | 速度 | 适用场景 |
| ---- | ---- | ---- | ---- | ---- |
| paged_bytes | 按顺序存储唯一词条,并将文档映射到这些词条,数据存储在内存中 | 较高 | 较快 | 默认格式 |
| fst | 将字段数据缓存存储在有限状态转换器(FST)结构中 | 较低 | 较慢 | 对内存使用敏感场景 |
| doc_values | 在索引期间计算字段数据缓存条目,并与索引文件一起存储在磁盘上 | 非常低 | 几乎与默认格式一样快 | 非分析字符串字段,对内存使用要求极低场景 |
需要注意的是,doc_values格式不能用于分析字符串字段,且不支持字段