【电商项目】商品搜索开发复盘(1):根据需求拆解搜索接口的设计逻辑 目录一、搜索功能整体实现思路1. 为什么不用MySQL全程基于ES做搜索2. 整体核心逻辑传参 → 处理 → 出参1.1 传参构造ES查询条件1.2 处理执行ES搜索1.3 出参封装返回前端的完整数据二、核心代码流程总览核心复盘小结前言搜索功能的编写比较复杂首先搜索条件繁多有关键字、价格、品牌、规格等。其次返回的结果除了搜索到的商品还要返回搜索面板包含关键字对应的品牌、品类、规格等还要将搜索条件回显回去供前端操作。本篇先对大体实现思路进行回顾然后再细复盘每一处的实现。我们要实现的样式可以参考京东的面板。一、搜索功能整体实现思路1. 为什么不用MySQL全程基于ES做搜索MySQL正排索引查词要翻所有文档只适合简单 CRUD。面对商品关键字分词、模糊检索、多条件筛选、数据聚合场景性能极差、无法实现分词匹配。而 Elasticsearch 基于倒排索引设计它会先拆词再记这个词在哪些文档里专门适用于解决全文检索场景。因此项目将商品搜索单独抽离基于ES实现。2. 整体核心逻辑传参 → 处理 → 出参1.1 传参构造ES查询条件关于传参就看一个接收后是否需要处理。前端传入GoodsSearchParamJSON参数和MySQL的Goods实体一样是面向业务存储设计的只保存商品主表字段而ES是面向搜索场景需要品牌、分类、规格等多表的冗余字段。我们需要把前端可读的业务参数转换成ES可识别的检索语法适配ES的查询规则。所以首先我们要把前端传过来的数据构造成ES搜索条件。1.2 处理执行ES搜索我们的处理就是实现商品的搜索。ES实现商品搜索通过注入ElasticsearchTemplate调用search方法传入构造好的ES查询条件指定映射实体GoodsES即可完成ES数据查询。1.3 出参封装返回前端的完整数据这是整个接口的核心也是区别于普通查询的关键。ES原始查询结果不能直接返回前端需要二次封装对应两个核心需求1、分页商品数据将ES查询的原始数据封装为Page分页对象提供商品列表、总条数、页码等用于前端渲染商品列表2、搜索聚合面板数据遍历所有搜索结果聚合去重品牌、品类、规格数据生成筛选面板同时回显用户的搜索参数保证前端搜索条件不丢失。二、核心代码流程总览// 搜索产品 Override public GoodsSearchResult search(GoodsSearchParam goodsSearchParam) { // 1.构造ES搜索条件 // 2.搜索 // 3.将查询结果封装为Page对象 // 4.封装结果对象 // 4.1 查询结果 // 4.2 查询参数 // 4.3 查询面板 return null; }核心复盘小结1、1、2步是内部查询过程只负责和ES交互无对外返回数据2、3、4步是最终出参核心所有给前端展示的列表、分页、筛选框、参数回显全部来自这两步也是搜索功能的业务核心。

相关新闻

最新新闻

告别“人工跑单”与“口头回复”:制造业Agent场景落地架构全解析

告别“人工跑单”与“口头回复”:制造业Agent场景落地架构全解析

在传统制造业的数字化转型中,我们常常陷入一个怪圈:ERP、MES、WMS等业务系统上了不少,报表也能拉出来,但计划员和采购员依然苦不堪言。为什么?因为系统只提供了“看板”,而后续的核对、比对、催交、改排产&…

2026/8/26 19:01:45
LangChain 安装:从pip install langchain到看懂包依赖链路(一文搞懂)

LangChain 安装:从pip install langchain到看懂包依赖链路(一文搞懂)

LangChain 安装:从 pip install langchain 到看懂包依赖链路(一文搞懂)很多人第一次装 LangChain,敲完 pip install langchain 就以为万事大吉,结果 from langchain_openai import ... 疯狂报错;或者看到 l…

2026/8/26 19:01:45
【labview下bat文件运行】

【labview下bat文件运行】

需求:labview静默调用bat文件,bat为运行windows服务文件。 运行服务.bat echo off chcp 65001 >nul set ServiceNameWeilyOcrServiceecho echo 服务名称:%ServiceName% echo sc query "%ServiceName%" >nul 2>&1 if…

2026/8/26 19:01:45
【花雕动手做】直流有刷 2S 7.4V 高功率低噪音吸尘器筋膜机专用马达

【花雕动手做】直流有刷 2S 7.4V 高功率低噪音吸尘器筋膜机专用马达

类型:直驱无减速 永磁有刷直流电机 实测条件:DC7.4V,空载转速 3100rpm 输出轴:Φ8mm D‑cut 轴(D 轴),轴心 M4 内螺纹 支撑:前后双 608ZZ 轴承 安装:方形法兰 4 孔固定 性能要点 优点 Φ8 D 轴强度高,市面上 D 轴联轴器、同步轮、带轮选择非常多;轴心 M6 内螺纹,可…

2026/8/26 19:01:45
ASIC-Agent 论文精读:AI 不只写 Verilog,还要自己验证、跑 OpenLane、生成 GDSII

ASIC-Agent 论文精读:AI 不只写 Verilog,还要自己验证、跑 OpenLane、生成 GDSII

ASIC-Agent 论文精读:AI 不只写 Verilog,还要自己验证、跑 OpenLane、生成 GDSII1. 论文信息:来自哪里,应该怎么引用?1.1 基本信息1.2 BibTeX 引用1.3 中文参考文献写法1.4 IEEE 风格引用2. 这篇论文到底在解决什么问题…

2026/8/26 19:01:45
震惊!芯片推拉力测试机供应商,你必须知道这5家!

震惊!芯片推拉力测试机供应商,你必须知道这5家!

当一颗芯片从晶圆上切割、键合、封装,到最终成为能够驱动智能设备的“心脏”,每一个环节都隐藏着对可靠性的极致要求。而在半导体制造与封装的庞大版图中,芯片推拉力测试机堪称衡量焊接强度与键合质量的“守门员”,是确保芯片长期…

2026/8/26 18:56:44