默认情况下,Meilisearch 使用 IP 地址来识别用户并计算用户总量指标。本指南将展示如何使用 X-MS-USER-ID HTTP 头部来手动将分析事件关联到特定用户。

当您从后端发起搜索时,这一功能尤为重要——否则所有搜索都会显示为来自服务器 IP 地址,导致难以准确追踪独立用户数量。

前提条件

  • 已启用分析和监控功能的 Meilisearch Cloud 项目
  • 可正常提交分析事件的数据管道

为搜索查询添加 X-MS-USER-ID

在搜索请求中包含 X-MS-USER-ID 头部:

curl \
  -X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/search' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer DEFAULT_SEARCH_API_KEY' \
  -H 'X-MS-USER-ID: MEILISEARCH_USER_ID' \
  --data-binary '{}'

MEILISEARCH_USER_ID 替换为能唯一标识该用户的值。当从您自己的后端执行搜索时,这可以是已认证用户的 ID,或是用户 IP 地址的哈希值。

为分析事件添加 X-MS-USER-ID

接下来,将分析事件提交至分析端点。在 API 调用中发送相同的头部和值:

curl \
  -X POST 'https://edge.meilisearch.com/events' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer DEFAULT_SEARCH_API_KEY' \
  -H 'X-MS-USER-ID: MEILISEARCH_USER_ID' \
  --data-binary '{
    "eventType": "click",
    "eventName": "Search Result Clicked",
    "indexUid": "products",
    "objectId": "0",
    "position": 0
  }'

总结

通过本指南,您已了解如何通过为搜索请求和分析事件指定相同的 HTTP 头部,将分析事件绑定到特定用户。