连载中 18/20

场景集:电商搜索、日志平台与数据看板

2026-08-19 · 1671 阅读 · 0 评论 · 0 赞

会装一台车,更要会装三种车

前面十八篇的零件都齐了,这篇换一种讲法:不添新零件,只做三套完整配方。搜索引擎的三大高频场景——电商搜索、日志平台、数据看板——对 ES 的用法侧重完全不同,看完就知道你的需求该抄哪张图纸。

配方一:电商搜索(本系列主线)

老王的咖啡商城就是完整样板,把关键配置点串一遍:

环节配置要点复习篇目
分词IK 细进粗出,新词进远程词典第 4 篇
mappingtext 搜索加 keyword 聚合,价格 numeric第 5 篇
召回multi_match 标题加权,同义词两头挂第 9、16 篇
排序BM25 打底,function_score 叠销量新品第 8 篇
兜底纠错 suggest,零结果率监控第 9、16 篇

电商搜索的灵魂是相关性加业务规则的平衡:算法分太弱用户搜不到,业务分太重搜索变推荐。老王的试错结论是 BM25 做底、function_score 轻量叠加,权重调整跟着点击日志走,别拍脑袋。

配方二:日志平台

日志场景的画像完全不同:写入巨大、查询集中在最近、老数据只进不出。配方要点:

索引按天滚动(第 14 篇的 rollover 正面战场),message 全文字段走 standard 分词就够(日志不用中文精切),级别和时间戳字段建 keyword 与 date 做 filter。查询几乎全是「最近一小时 error 关键字」这类组合,用 date_histogram 聚合画趋势、terms 统计 top 服务。保留策略用 ILM:热节点放七天内,温节点放三十天,到期自动删——日志平台的第一性能法则是别把冷数据留在热节点。refresh_interval 拉到 30 秒换写入吞吐,日志晚半分钟可见没人心疼。

配方三:数据看板

看板场景(运营驾驶舱、经营日报)几乎是纯聚合:几条 terms 和 date_histogram 出全部图表,查询少统计多。配方要点:

统计维度字段全建 keyword,指标字段用 numeric,doc values 天然适配;同步走定时扫表或 binlog 订阅(第 15 篇),分钟级延迟完全够用;去重计数用 cardinality,接受近似值;图表接口固定不变的话,给结果加一层短 TTL 缓存(Redis 或本地),十个人看的看板不需要十个人各查一遍。

三张配方的共性心法

维度电商搜索日志平台数据看板
读写比例读多写少写多读少写少读多
核心诉求相关性写入吞吐聚合效率
索引形态稳定大索引按天滚动按主题建库
同步方式异步双写或 binlog直接写入定时扫表

共性心法就一条:先回答读写比例,再定索引形态,最后挑同步方式。顺序反了,后面全是补丁。

小结

三套配方一句话:电商搜索拼相关性闭环,日志平台拼滚动与吞吐,数据看板拼聚合与缓存。同一套 ES,先看清场景,再动手建索引。

配方背熟了,最后一步是把 20 篇里的血泪教训集中点名——那些老王真踩过或差点踩过的坑。下一篇讲陷阱集:十个真实事故现场,每一个都能直接进新人入职考试。

☕
503

10 年全栈工程师 · 503咖啡馆主理人

#Elasticsearch#场景#电商搜索#日志平台#数据看板

评论 (0)

热门推荐

连载中 11/22

主从搭建实操:从零配出一主两从

光讲原理不过瘾?手把手搭一主两从:my.cnf 六个参数、复制账号、GTID、CHANGE REPLICATION SOURCE TO、SHOW REPLICA STATUS 验收,附翻车排查清单。

#MySQL#主从复制#GTID#主从搭建#高可用
2026-05-07 · 10100 阅读 · 0 评论 · 0 赞
连载中 16/22

连接池:HikariCP 参数与连接风暴

连接池不是越大越好:8 核机器配 1000 连接反而更慢的数学原理,HikariCP 四个必调参数,maxLifetime 与 wait_timeout 的隐形陷阱。

#MySQL#连接池#HikariCP#maxLifetime#连接风暴
2026-05-10 · 9872 阅读 · 0 评论 · 0 赞
连载中 4/16

缓存穿透:恶意 ID 打穿 MySQL 的四道防线

请求的数据在缓存和数据库里都不存在时,缓存形同虚设。聊聊参数校验、空值缓存、布隆过滤器、限流熔断四道防线的原理与组合打法。

#Redis#缓存穿透#布隆过滤器#高可用
2026-05-16 · 9293 阅读 · 21 评论 · 287 赞