Algolia 搜索集成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/algolia-search-zh。
技能介绍
要解决什么问题
在 React 或 Next.js 里接 Algolia,常见痛点是:组件库版本分裂(老 Widget 与新 Hooks 并存)、Next 里首屏与 URL 状态不一致,以及业务数据变更后索引要么全量重建太慢、要么单条更新策略选错导致成本飙升。
技能如何组织
React InstantSearch(Hooks) 以 react-instantsearch-hooks-web 搭配 algoliasearch 客户端,用可组合组件实现输入联想(type-ahead)。核心 hooks 分工明确:useSearchBox 管查询输入,useHits 读命中结果,useRefinementList 做分面过滤,usePagination 分页,useInstantSearch 暴露完整 UI 状态;样式可通过 classnames 挂在自定义 Widget 上。
Next.js SSR 走 react-instantsearch-nextjs,用 SSR 专用入口替代仅客户端渲染的用法,同时覆盖 Pages Router 与实验性的 App Router。实践上通常要:dynamic = 'force-dynamic' 保证结果新鲜;用 routing 把筛选/查询同步到 URL;服务端用 getServerState 灌入初始状态,减少水合闪烁。
数据与索引 文档归纳三条路径:全量重建(替换整索引)、整条记录替换、部分更新(只改字段)。建议批量推送(约每批 10MB、1K–10K 条)、优先增量;仅改属性时用 partialUpdateObjects,并尽量避免高开销的 deleteBy。
适用边界
技能聚焦前端集成与索引维护模式,不替代 Algolia 控制台里的排名、同义词、安全 API Key 等运营配置。Next App Router 标注为实验性,上线前需按官方文档核对当前包版本与 SSR 行为。原文中的易错点表仅为占位,具体排错仍以 Algolia 官方文档为准。
使用场景
- 在 React 站点里用 Hooks 实现搜索框联想、分面筛选与分页,并自定义 Widget 样式
- Next.js 商品或文档站要在首屏 SSR 出 Algolia 结果,并把查询与筛选同步到 URL
- 业务库每日增量变更后,需要按批量或 partialUpdateObjects 更新索引而非每晚全量重建
- 从旧版 InstantSearch Widget 迁移到 react-instantsearch-hooks-web,并理清各 hook 的职责边界
适合人员
- 维护 B2B 或内容站前端、要把站内搜索从自建 ES 迁到 Algolia 的 React 工程师
- 负责 Next.js 电商/文档站、需解决 SSR 水合与搜索状态与路由一致性的全栈开发
- 后端或数据管道同学,负责把 CMS/订单数据推送到 Algolia 并控制全量与增量索引成本
- 从 Algolia 官方示例改版 UI,却要在团队内统一 Hooks 架构与索引更新规范的 Tech Lead