月度归档:2026年8月 (56)
mapping:字段类型建错,神仙也救不回来
价格建成 text,排序按字典序把 10 排在 9 前面,聚合直接报错。text 与 keyword 的分工、动态 mapping 的自作主张、object 数组的错配陷阱、类型改不了的补救路线——mapping 是地基,地基错了整栋楼返工。
分词器:中文搜索的第一道坎
默认的 standard 分词器把「燕麦拿铁」剁成四个单字,召回全靠缘分。装上 IK,分清 ik_max_word 与 ik_smart 两把刀,用对「细进粗出」,配好远程词典热更新——中文搜索及格线一次划清。
核心概念:Index、Document、Shard 与 Replica
从 MySQL 的世界观平移进 ES:表变索引,行变文档。但 shard 是新物种——建索引时定死的主分片数决定了路由公式,也决定了后期改起来的成本。概念地图一次画清。
倒排索引:正排查我,倒排查谁
手工倒排表只是玩具。真实的引擎长这样:三段式分词器、FST 词典、压缩倒排表加跳表,再配上管排序聚合的 doc values。拆开看每块零件,搜索为什么快就有答案了。
LIKE 查不了「燕麦拿铁」:为什么需要 Elasticsearch
用户搜「燕麦拿铁」,搜索框返回 0 结果,商品明明躺在库里。LIKE 前缀通配符走不了索引、不懂分词、性能随数据量线性劣化——这一篇把倒排索引请出场。
Docker Compose 本地开发环境搭建模板(附 yaml)
MySQL + Redis + Nacos + MinIO 一键起。包含健康检查、数据卷、网络隔离的完整配置,pig 项目直接用。
收官复盘:一张消息队列作战地图
20 篇走完,把消息队列的全部内容收进一张地图:症状到篇目的排查索引、按场景的阅读路径、三条心法与上线检查清单。收官不散场,地图常翻常新。
陷阱清单:丢失、重复、乱序的一线复盘
七起真实风格的事故复盘:吞异常丢消息、自动提交踩空、Redis 幂等失效、Rebalance 重复扣款、毒消息卡队列、大消息打爆 Broker、误重置位点。每起都给出根因与修复。
实战场景集:订单超时、秒杀、数据同步、最终一致
理论装进业务才算数。四个高频场景的完整方案:延迟消息三保险、秒杀的预扣库存、binlog 订阅式数据同步、支付回调的最终一致——每道菜都标了用了系列里哪几味药。