文章目录
禁用不需要的特性
默认情况下,ES为大多数的字段建立索引,并添加到doc_values,以便使之可以被搜索和聚合。例如以下几种情况:
- 如不需要在某个字段上过滤,则可以不索引该字段;
- 如只需要在文本字段上进行匹配,而不关心生成的得分,则可以配置ES不将norms写入索引;
- 如不需要运行短语查询,则可以不索引位置;
禁用doc values
所有支持doc value的字段都默认启用了doc value。如果确定不需要对字段进行排序或聚合,或者从脚本访问字段值,则可以禁用doc value以节省磁盘空间。
不要使用默认的动态字符串映射
默认的动态字符串映射会把字符串类型的字段同时索引为text和keyword。如果只需要其中之一,则显然是一种浪费。通常,id字段只需要作为keyword类型进行索引,而body字段只需作为text类型进行索引。
要禁用默认的动态字符串映射,则可以显式地指定字段类型,或者在动态模板中指定将字符串映射为text或keyword。
观察分片大小
较大的分片可以更有效地存储数据。为了增加分片大小,可以在创建索引的时候设置较少的主分片数量,或者使用shrink API来修改现有索引的主分片数量。但是较大的分片也有缺点,例如,较长的索引恢复时间。
禁用_source
_source字段存储文档的原始内容。如果不需要访问它,则可以将其禁用。但是,