Web Elasticsearch题目,你会怎么出题,考那些内容?

‌一、默认内置分词器‌

**1. ‌标准分词器 (Standard Analyzer)‌ **
‌特点‌:

  • 按空格和标点符号分割文本,支持多语言基础分词
  • 中文默认单字切分(如「苹果手机」→ [苹, 果, 手, 机])
  • 自动转小写,过滤标点符号

‌优点‌:通用性强,适合英文及简单多语言场景
‌缺点‌:中文分词效果差,无法识别语义

**2. ‌空格分词器 (Whitespace Analyzer)‌ **
‌特点‌:

  • 严格按空格分割文本,保留原始大小写和标点
  • 中文需手动添加空格才能正确分词

‌优点‌:处理英文纯文本速度快
‌缺点‌:中文处理能力几乎为0,需额外预处理

**3. ‌关键词分词器 (Keyword Analyzer)‌ **
‌特点‌:

  • 将整个文本作为单个词条不进行分词
  • 常用于精确匹配场景(如ID、状态字段)

‌优点‌:避免误分词,保障数据完整性
‌缺点‌:不支持模糊搜索和语义分析

‌二、中文专用分词器‌

**‌IK分词器 (IK Analyzer)‌ **
‌特点‌:

  • 中文专用开源分词器,支持ik_smart(粗粒度)和ik_max_word(细粒度)模式
  • 内置超60万中文词库,支持扩展自定义词典

‌优点‌:

  • 中文分词准确率高(如「苹果手机」→ [苹果, 手机])
  • 支持热更新词典,适用于动态词库场景

‌缺点‌:

  • 未登录词(如新网络词汇)处理能力有限
  • 分词速度略低于标准分词器(约60万字/秒)

‌三、特殊用途分词器‌
1. ‌NGram分词器‌ 36
‌特点‌:

  • 将文本按N-Gram模式切分(如「微信」→ [微, 信, 微信])
  • 支持配置min_gram和max_gram控制切分长度

‌优点‌:支持模糊搜索和部分匹配(如邮箱后缀搜索)
‌缺点‌:索引体积膨胀严重,内存消耗高

**2. ‌正则分词器 (Pattern Analyzer)‌ **
‌特点‌:

  • 基于正则表达式定义分割规则(如按数字、特殊符号分割)
  • 支持自定义正则模式适配业务需求

‌优点‌:灵活性高,适合非结构化文本处理
‌缺点‌:正则配置复杂度高,性能低于预设分词器

**3. ‌停用词分词器 (Stop Analyzer)‌ **
‌特点‌:

  • 在标准分词器基础上过滤停用词(如英文的and/the,中文需自定义)
  • 减少无效词条,提升搜索效率

‌优点‌:降低索引冗余,加速查询性能
‌缺点‌:需手动维护停用词表,中文支持较弱

‌四、高级扩展方案‌
**‌自定义分词器‌ **
‌组成模块‌:

  • ‌字符过滤器‌:预处理文本(如去除HTML标签)
  • ‌分词器‌:核心切分逻辑(如ICU分词器支持多语言)
  • ‌词项过滤器‌:后处理(如小写转换、同义词扩展)

‌一、选择题(每题2分,共10分)‌

‌Elasticsearch的节点类型中,负责管理集群元数据和分片分配的是?‌
A. 数据节点
B. 主节点
C. 协调节点
D. 摄取节点
答案‌:B

‌以下哪种分词器最适合中文语义分词场景?‌
A. 标准分词器(Standard Analyzer)
B. IK分词器(IK Analyzer)
C. 空格分词器(Whitespace Analyzer)
D. NGram分词器
答案‌:B

‌二、简答题(每题5分,共20分)‌

‌简述Elasticsearch倒排索引的工作原理及其优势。‌
‌答案‌:倒排索引通过建立“词项→文档ID”映射提升检索效率,支持全文搜索和快速定位文档。相较于正排索引,倒排索引更适合处理非结构化数据的高效查询。

‌列举保证数据库与Elasticsearch索引数据同步的三种策略。‌
‌答案‌:

  • 基于数据库Binlog的实时同步(如Canal+Logstash)
  • 应用程序双写(事务内同步更新数据库和ES)
  • 定时批处理任务(对比差异数据并增量更新)

‌三、设计题(15分)‌
‌设计一个支持高并发查询的电商商品搜索服务,要求:‌

  • 支持关键词、价格区间、商品类目多维度检索
  • 数据量级为PB级,写入延迟低于1秒
  • 提供容灾和水平扩展能力

‌参考答案‌:
‌架构设计‌:

  • 使用多节点集群架构,分离主节点、数据节点和协调节点角色
  • 分片策略:每个索引设置5个主分片+1副本分片,分散数据压力
    ‌查询优化‌:
  • 结合布尔查询(Bool Query)整合多条件过滤
  • 对价格字段使用range查询,类目字段使用term精确匹配
    ‌容灾扩展‌:
  • 通过ILM策略实现冷热数据分层存储,优化资源利用率
  • 监控分片负载,动态调整分片分配策略

‌四、案例分析题(15分)‌
‌场景‌:某日志分析系统使用Elasticsearch存储日志,发现查询性能逐渐下降。当前集群有10个节点,索引按天创建,分片数为3,副本数为1。

‌问题分析‌:
‌性能下降可能原因‌:

  • 分片数量不足导致单个分片数据量过大(如单日日志超过50GB)
  • 未清理历史索引,碎片化严重,影响合并效率

‌优化方案‌:

  • 调整分片策略:按日志量动态设置分片数(如每分片20GB数据)
  • 启用索引生命周期管理(ILM),自动删除过期索引及合并碎片
  • 使用Rollover API实现索引自动滚动创建
posted @ 2025-05-16 11:27  小熊熊8910  阅读(16)  评论(0)    收藏  举报