连载中 18/20

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

2026-08-19 · 1667 阅读 · 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)

相关推荐

连载中 12/20

排查四件套:jstack、jmap、jstat、jcmd 的实战分工

jstack 看线程在干什么,jmap 看堆里装了什么,jstat 看运行时在变什么,jcmd 是统一入口。四把刀各管一段,配合着用没有查不动的现场。

#jstack#jmap#jstat#jcmd#排查工具
2026-09-16 · 4 阅读 · 0 评论 · 0 赞
连载中 11/20

GC 日志:把回收过程翻译成人话

一行 GC 日志里塞着七种信息:谁触发的、收了哪、停了多久、活了哪些。加上 -Xlog 配置,再加上日志分析工具,GC 不再是只能盯监控曲线的黑盒。

#GC日志#Xlog#日志分析#GC监控#Full GC排查
2026-09-16 · 13 阅读 · 0 评论 · 0 赞
连载中 10/20

ZGC:亚毫秒停顿是怎么炼成的

百 G 大堆停顿不到一毫秒,靠的是把搬家全部挪到并发阶段——着色指针让引用自带状态,读屏障让搬运中的对象依然可访问。代价是吞吐与内存,收益是停顿与堆大小解耦。

#ZGC#着色指针#读屏障#亚毫秒停顿#分代ZGC
2026-09-15 · 8 阅读 · 0 评论 · 0 赞