# 搜索分析
# 服务端 vs 客户端
构建搜索体验时,常见的需求包括解答以下问题:
- 哪些是最热门的搜索词?
- 是否存在返回零结果的搜索词?
- 是否有特定搜索词可以添加为同义词以获取更多结果?
- 哪些搜索词的转化率最高?
- 哪些搜索词导致每次会话的页面访问量更高?
- 搜索结果中最常返回哪些项目?
- 用户人口统计/群体与其搜索行为之间是否存在相关性?
要回答这些问题中的大多数,您不仅需要搜索数据,还需要了解用户如何与网站或应用不同部分互动的数据。 这些数据很可能已经被您选择的 网站/应用分析 工具(如 Amplitude (opens new window)、Google Analytics (opens new window)、Heap (opens new window)、Mixpanel (opens new window)、Plausible (opens new window)、Pendo (opens new window) 等)所捕获。
鉴于您需要结合用户行为数据的上下文来全面了解搜索体验的表现,
我们强烈建议在客户端实现搜索分析,将额外的搜索数据与您已收集的其他数据一起发送到现有的分析平台。
# 服务端分析
从 v0.25.0 开始,Typesense 原生支持捕获 搜索分析(热门搜索词)功能。 收集搜索词后,您可以通过每个搜索词的计数排序来获取热门搜索词。
# 客户端分析
# InstantSearch 分析组件
如果您正在使用 InstantSearch UI 库,它提供了开箱即用的组件来帮助您捕获搜索数据,并在客户端将这些数据发送到您选择的分析工具:
请参阅 Linux Commit Search 参考实现,了解如何在代码中实现此功能的示例。
# 自定义搜索界面的埋点
通常您会需要监听搜索字段的变化(使用约1秒的防抖处理),然后捕获显示的搜索词和搜索结果,并使用分析平台的API库发起API调用,记录搜索事件的发生。