MST
星途 面试题库

面试题:ElasticSearch 文档操作标准化建设中的索引操作规范

在 ElasticSearch 文档操作定义的标准化建设背景下,描述一下创建索引时需要遵循哪些标准化规范,以确保数据存储和检索的高效性与一致性,例如索引的命名规则、分片和副本的设置原则等。
46.8万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

索引命名规则

  1. 可读性:命名应具有明确含义,能够清晰表达索引所包含数据的主题或用途。例如,对于用户相关数据的索引,可命名为 user - data ,避免使用晦涩难懂的缩写或无意义字符。
  2. 唯一性:在整个 ElasticSearch 集群中,索引名称必须唯一,以防止混淆和数据冲突。
  3. 遵循特定模式:可采用一定模式,如业务模块 - 数据类型 - 时间范围等。如 ecommerce - product - 202312 表示电商业务 2023 年 12 月的产品数据索引。
  4. 避免特殊字符:除了 -_ 等少数允许的字符外,尽量避免使用特殊字符,以免在某些客户端或工具中出现兼容性问题。

分片和副本设置原则

  1. 分片数量
    • 数据量考量:根据预估数据量来确定。如果数据量较小(如小于10GB),可适当设置较少分片,如1 - 3 个;对于大数据量(如TB级),则需更多分片。例如,对于100GB左右数据,可考虑设置10 - 20个分片,确保每个分片数据量在合理范围(如5 - 10GB),便于存储和检索。
    • 节点数量:结合集群节点数量。每个节点能承载的分片数量有限,一般建议每个节点上的分片数量不超过30个。例如,一个有5个节点的集群,总分片数不宜超过150个。
    • 查询性能:过多分片会增加查询的开销,因为每个分片都需要独立查询和合并结果。对于复杂查询场景,需平衡分片数量,避免过多分片导致性能下降。
  2. 副本数量
    • 高可用性:为保证数据高可用,至少设置1个副本。在某个节点故障时,副本可替代主分片继续提供服务。例如,重要业务数据可设置2 - 3个副本,确保在多个节点故障时数据仍可访问。
    • 资源消耗:副本会占用额外的磁盘空间和网络带宽,需根据集群资源情况设置。如资源有限的集群,可适当减少副本数量,如设置1个副本;资源充足的集群,可增加副本数量提高可用性。
    • 读性能提升:副本可分担读请求,提高读性能。对于读多写少的应用场景,可适当增加副本数量,如设置3 - 5个副本,将读请求分摊到多个副本上,提升整体读性能。

字段映射规范

  1. 数据类型准确性:明确每个字段的数据类型,如文本类型使用 text ,数值类型根据范围选择 integerlongfloat 等。避免错误类型映射导致数据存储和检索问题。
  2. 分析器选择:对于文本字段,选择合适的分析器。如英文文本可使用 standard 分析器,中文文本可使用 ik 等中文分词分析器,确保文本能正确分词和索引,提高检索准确性。
  3. 字段属性设置:合理设置字段属性,如 index 控制字段是否可被索引, store 控制字段是否存储原始值。对于不需要检索但需要显示的字段,可设置 index: false ,减少索引空间占用。

索引模板使用

  1. 通用性:创建通用的索引模板,涵盖常见的索引设置,如命名规则、分片副本、字段映射等。这样新创建索引时可直接应用模板,确保所有索引遵循统一规范。
  2. 版本管理:对索引模板进行版本管理,当索引规范发生变化时,可通过更新模板版本,逐步应用到新创建的索引,保证索引设置的一致性和可维护性。