[ PROMPT_NODE_23644 ]
algolia-search
[ SKILL_DOCUMENTATION ]
# Algolia 搜索集成
## 模式
### 使用 Hooks 的 React InstantSearch
用于预输入搜索的现代 React InstantSearch 设置(使用 hooks)。
使用 react-instantsearch-hooks-web 包和 algoliasearch 客户端。
组件可以通过类名进行自定义。
关键 Hooks:
- useSearchBox:搜索输入处理
- useHits:访问搜索结果
- useRefinementList:分面过滤
- usePagination:结果分页
- useInstantSearch:完整状态访问
### Next.js 服务端渲染 (SSR)
使用 react-instantsearch-nextjs 包进行 Next.js 的 SSR 集成。
使用 代替 以支持 SSR。
同时支持 Pages Router 和 App Router(实验性)。
关键注意事项:
- 设置 dynamic = 'force-dynamic' 以获取最新结果
- 使用 routing prop 处理 URL 同步
- 使用 getServerState 获取初始状态
### 数据同步与索引
保持 Algolia 与数据同步的索引策略。
三种主要方法:
1. 全量重新索引 - 替换整个索引(成本高)
2. 全量记录更新 - 替换单个记录
3. 部分更新 - 仅更新特定属性
最佳实践:
- 批量记录(理想值:10MB,每批 1K-10K 条记录)
- 尽可能使用增量更新
- 使用 partialUpdateObjects 进行仅属性的更改
- 避免使用 deleteBy(计算成本高)
## ⚠️ 风险点
| 问题 | 严重程度 | 解决方案 |
|-------|----------|----------|
| 问题 | 严重 | 参阅文档 |
| 问题 | 高 | 参阅文档 |
| 问题 | 中 | 参阅文档 |
| 问题 | 中 | 参阅文档 |
| 问题 | 中 | 参阅文档 |
| 问题 | 中 | 参阅文档 |
| 问题 | 中 | 参阅文档 |
| 问题 | 中 | 参阅文档 |