MST

星途 面试题库

面试题:ElasticSearch多索引设计原则之索引结构设计

在ElasticSearch API规范下,当设计多索引时,如何合理规划不同索引的结构以确保数据的高效存储和查询?请举例说明不同业务场景下索引结构设计的要点。
14.0万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

合理规划多索引结构确保数据高效存储和查询的方法

  1. 按数据生命周期规划:将经常访问的热数据放在高性能存储介质对应的索引中,而将历史归档的冷数据放在成本较低的存储对应的索引。例如,电商订单系统,最近一个月的订单数据查询频繁,可放在SSD存储支持的索引;一年前的订单数据较少查询,可放在HDD存储相关索引。
  2. 按业务功能模块划分:不同业务模块数据放入不同索引。如社交媒体平台,用户信息一个索引,动态发布一个索引,评论数据一个索引。这样可以避免索引过大,且不同业务模块的查询和维护互不干扰。
  3. 按数据频率划分:高频更新数据与低频更新数据分开索引。比如物联网设备监控,设备实时状态数据更新频繁,放一个索引;设备基础配置信息很少更新,放另一个索引。

不同业务场景下索引结构设计要点

  1. 日志记录场景
    • 时间序列索引:按时间划分索引,如每天或每周一个索引,方便按时间范围查询。例如,服务器日志,按天生成索引,利于快速定位某天的问题。
    • 字段设计:包含时间戳、日志级别、日志内容、相关服务名等字段。时间戳用于排序和范围查询,日志级别用于筛选,日志内容用于全文检索,服务名用于区分不同服务产生的日志。
  2. 电商商品搜索场景
    • 商品分类索引:按商品类别构建索引,如电子产品、服装等不同索引,便于同类商品快速检索。
    • 字段设计:商品名称(可分词,用于全文检索)、商品描述(分词,支持详细描述查询)、价格、库存、品牌等字段。价格可用于范围查询(如筛选价格区间),库存可用于库存相关查询,品牌用于品牌筛选。
  3. 金融交易场景
    • 交易类型索引:按交易类型,如转账、存款、取款等划分索引,方便快速定位特定交易类型。
    • 字段设计:交易ID(唯一标识,便于精确查询)、交易时间、交易金额、交易双方账号、交易类型等字段。交易时间用于时间相关统计分析,交易金额用于金额范围查询等。