523 lines
19 KiB
Markdown
523 lines
19 KiB
Markdown
# Session: 2026-06-25 17:00:23 GMT+8
|
||
|
||
- **Session Key**: agent:main:feishu:direct:ou_e63ce6b760ad39382852472f28fbe2a2
|
||
- **Session ID**: 65bf7bd1-fb56-419f-b300-cee2cfe6cb01
|
||
- **Source**: feishu
|
||
|
||
## Conversation Summary
|
||
|
||
assistant: 我再看看每张表里的一些样例数据,方便你理解字段的实际内容:
|
||
assistant: 好了,以下是两张埋点表的完整数据结构:
|
||
|
||
---
|
||
|
||
## 📊 埋点数据结构
|
||
|
||
线上 PostgreSQL `vala_bi` 库中有两张埋点表:
|
||
|
||
---
|
||
|
||
### 1. `growth_activity_behavior`(增长活动行为埋点)
|
||
|
||
**数据量:** 38,063 条
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| id | int | 自增主键 |
|
||
| es_id | varchar(255) | ES 原始 ID(唯一) |
|
||
| account_id | int | 账号 ID(=0 为匿名) |
|
||
| account_name | varchar(255) | 账号名 |
|
||
| **activity** | text | 活动标识(目前有 `900`、`26100` 两种) |
|
||
| **behavior** | varchar(255) | 行为类型 |
|
||
| **sub_behavior** | varchar(255) | 子行为类型 |
|
||
| **source** | varchar(255) | 来源入口 |
|
||
| **info** | text | 扩展 JSON(如 `{"h5_url_parameter":"zz"}`) |
|
||
| user_id | int | 设备/会话级 ID |
|
||
| user_name | varchar(255) | 用户名 |
|
||
| created_at | timestamp | 事件时间 |
|
||
|
||
**behavior 枚举:**
|
||
- H5 购买流程(sub: H5 页面曝光时 / 商品切换点击 / 支付成功 / 立即购买按钮点击)
|
||
- 落地页曝光、落地页主按钮点击
|
||
- 获取验证码点击、获取验证码结果
|
||
- 手机号弹窗关闭点击、挽留弹窗按钮点击
|
||
|
||
**source 枚举:** homebuttom、course、seasonList、seasonNav、AD、空
|
||
|
||
**索引:** created_at、user_id、es_id (唯一)
|
||
|
||
---
|
||
|
||
### 2. `user_behavior_buried_points`(端内学习行为埋点)
|
||
|
||
**数据量:** 65,549 条
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| id | int | 自增主键 |
|
||
| **burying_point_id** | int | 埋点 ID(目前有 `1000`、`1100`) |
|
||
| burying_point_name | varchar(255) | 埋点名称 |
|
||
| **burying_point_sub_id** | int | 子埋点 ID(1~5) |
|
||
| burying_point_sub_name | varchar(255) | 子埋点名称 |
|
||
| account_id | int | 账号 ID |
|
||
| account_name | varchar(255) | 账号名 |
|
||
| character_id | int | 角色 ID |
|
||
| character_name | varchar(255) | 角色名 |
|
||
| **active_time** | int | 事件时间戳(秒) |
|
||
| version_id | varchar(255) | 客户端版本 |
|
||
| **step_duration** | int | 步骤耗时(秒) |
|
||
| finish_status | varchar(255) | 完成状态 |
|
||
| season_package_id | int | 季度包 ID |
|
||
| season_package_name | varchar(255) | 季度包名 |
|
||
| unit_id | int | 单元 ID |
|
||
| unit_name | varchar(255) | 单元名 |
|
||
| lesson_id | int | 课时 ID |
|
||
| lesson_name | varchar(255) | 课时名 |
|
||
| component_id | int | 组件 ID |
|
||
| component_name | varchar(255) | 组件名 |
|
||
| **c_type** | varchar(255) | 组件类型(如 `core_listening_drag`) |
|
||
| c_id | varchar(255) | 组件实例 ID |
|
||
| learning_module_id | int | 学习模块 ID |
|
||
| learning_module_name | varchar(255) | 学习模块名 |
|
||
| learning_point_id | int | 知识点 ID |
|
||
| learning_point_name | varchar(255) | 知识点名 |
|
||
| card_id | int | 卡片 ID |
|
||
| card_name | varchar(255) | 卡片名 |
|
||
| data_version | varchar(255) | 数据版本 |
|
||
| ex2 | text | 扩展字段 2 |
|
||
| ex3 | text | 扩展字段 3 |
|
||
| es_id | varchar(255) | ES 原始 ID |
|
||
|
||
**索引:** account_id、character_id、active_time、burying_point_id
|
||
|
||
---
|
||
|
||
**总结:**
|
||
- `growth_activity_behavior` → 偏增长侧(H5购买漏斗、落地页、验证码等转化行为)
|
||
- `user_behavior_buried_points` → 偏端内学习侧(课程组件级的学习交互行为,粒度到 card 级别)
|
||
|
||
需要我进一步分析某张表的具体数据分布或字段含义吗?
|
||
user: [message_id: om_x100b6cfaf809bce0b12c638b6dd832a]
|
||
李承龙: 我想看看es库里面的数据结构
|
||
assistant: 业务索引不少,我来看看主要的几个索引的字段结构:
|
||
assistant: 再看看其他几个业务索引的结构:
|
||
assistant: 好了,全部查完了。以下是 Online ES 库的完整数据结构梳理:
|
||
|
||
---
|
||
|
||
## 📊 Online ES 数据结构总览
|
||
|
||
线上 ES 共有 **18 个业务索引**(排除系统索引),按功能模块分类如下:
|
||
|
||
---
|
||
|
||
### 一、用户行为埋点类
|
||
|
||
| 索引 | 数据量 | 说明 |
|
||
|------|--------|------|
|
||
| `user_behavior_buried_points` | **3741万** (11.6GB) | 端内学习行为埋点(组件级) |
|
||
| `growth_activity_behavior` | 4.4万 (14MB) | 增长活动行为(H5购买漏斗/落地页) |
|
||
| `user-audio` | **496万** (2.7GB) | 用户音频交互记录 |
|
||
| `word_sentence_learn_data` | 439 (381KB) | 单词/句子学习数据 |
|
||
|
||
---
|
||
|
||
### 二、LLM/AI 服务日志类
|
||
|
||
| 索引 | 数据量 | 说明 |
|
||
|------|--------|------|
|
||
| `llm_api_stat` | **601万** (1GB) | LLM API 调用统计(token用量/耗时) |
|
||
| `llm_roleplayagent_round_log` | **160万** (6.4GB) | 角色扮演对话日志(每轮对话详情) |
|
||
| `llm_pron_eval` | **215万** (1.8GB) | 发音评测日志 |
|
||
| `llm_asr_log` | **290万** (1.9GB) | 语音识别(ASR)日志 |
|
||
| `llm_realtime_asr_log` | **125万** (586MB) | 实时流式ASR日志 |
|
||
| `llm_tts_log` | **284万** (1.7GB) | 文本转语音(TTS)日志 |
|
||
| `llm_image_speaking` | **62万** (419MB) | 看图说话交互日志 |
|
||
| `llm_ai_tools_log` | **31万** (279MB) | AI 工具调用日志(翻译/图片处理/检测等) |
|
||
| `llm_api_error_based_correction` | 6.7万 (42MB) | 纠错API日志 |
|
||
| `llm_api_writing` | 9418 (6.4MB) | 写作API日志 |
|
||
| `llm_core_speaking_monologue` | 590 (940KB) | 独白口语练习日志 |
|
||
| `llm_scene_chat_log` | 55 (360KB) | 场景对话日志 |
|
||
| `llm_instruction_control_log` | 3298 (21MB) | 指令控制日志 |
|
||
|
||
---
|
||
|
||
### 三、其他
|
||
|
||
| 索引 | 数据量 | 说明 |
|
||
|------|--------|------|
|
||
| `echo_trace-write` | 3321 (6.7MB) | 小葵(销售bot)会话轨迹日志 |
|
||
| `vala-user-chat-log` | 1547 (4.2MB) | 用户聊天对话日志 |
|
||
| `llm_api_knowledge_card_transition` | 23 (78KB) | 知识卡片转换日志 |
|
||
| `llm_audio_denoise` | 0 | 音频降噪(空) |
|
||
| `pronunciation_eval_logs` | 4 (62KB) | 旧版发音评测日志(已废弃) |
|
||
|
||
---
|
||
|
||
### 四、核心索引字段详解
|
||
|
||
#### 1. `user_behavior_buried_points`(3741万条,最大业务索引)
|
||
```
|
||
accountId(long) - 账号ID
|
||
characterId(long) - 角色ID
|
||
buryingPointId(long) - 埋点ID
|
||
buryingPointSubId(long)- 子埋点ID
|
||
activeTime(long) - 事件时间戳
|
||
stepDuration(long) - 步骤耗时
|
||
cType(text) - 组件类型
|
||
cId(text) - 组件实例ID
|
||
componentId(long) - 组件ID
|
||
lessonId(long) - 课时ID
|
||
unitId(long) - 单元ID
|
||
seasonPackageId(long) - 季度包ID
|
||
learningModuleId(long) - 学习模块ID
|
||
learningPointId(long) - 知识点ID
|
||
cardId(long) - 卡片ID
|
||
courseLevel(keyword) - 课程等级
|
||
finishStatus(text) - 完成状态
|
||
action(keyword) - 动作
|
||
button(keyword) - 按钮
|
||
location(keyword) - 位置
|
||
dataVersion(keyword) - 数据版本
|
||
num1/num2/num3(double)- 数值扩展
|
||
ex2~ex6(keyword) - 字符扩展
|
||
versionId(text) - 客户端版本
|
||
```
|
||
|
||
#### 2. `llm_roleplayagent_round_log`(160万条,AI对话核心)
|
||
```
|
||
user_id(keyword) - 用户ID
|
||
session_id(keyword) - 会话ID
|
||
config_id(keyword) - 配置ID
|
||
npc_id(keyword) - NPC ID
|
||
current_round(long) - 当前轮数
|
||
round(long) - 总轮数
|
||
user_input(keyword) - 用户输入
|
||
user_text(keyword) - 用户原文
|
||
npc_message(keyword) - NPC回复
|
||
npc_translation(keyword) - NPC翻译
|
||
hint_msg(keyword) - 提示信息
|
||
feedback(keyword) - 语法反馈
|
||
grammar_rating(long) - 语法评分
|
||
score(long) - 总分
|
||
score_ratio(float) - 得分率
|
||
task_completed(bool) - 任务完成
|
||
final_completed(bool) - 最终完成
|
||
llm_model(keyword) - 使用模型
|
||
execution_time_ms(float) - 执行耗时
|
||
timestamp(long) - 时间戳
|
||
subtask_status(nested) - 子任务完成状态
|
||
round_eval_dict(nested)- 每轮评分详情
|
||
```
|
||
|
||
#### 3. `llm_api_stat`(601万条,API统计)
|
||
```
|
||
api_source(keyword) - API来源
|
||
service_name(keyword) - 服务名称
|
||
input_tokens(long) - 输入token数
|
||
output_tokens(long) - 输出token数
|
||
time_s(float) - 耗时(秒)
|
||
write_time_int(long) - 写入时间戳
|
||
write_time_str(keyword)- 写入时间串
|
||
```
|
||
|
||
#### 4. `echo_trace-write`(小葵会话轨迹)
|
||
```
|
||
contact_id(keyword) - 联系人ID
|
||
bot_wxid(keyword) - Bot微信ID
|
||
session_id(keyword) - 会话ID
|
||
skill(keyword) - 当前技能
|
||
stage(keyword) - 当前阶段
|
||
step(keyword) - 当前步骤
|
||
data.event(keyword) - 事件类型
|
||
data.current_stage - 当前阶段
|
||
data.current_vars - 当前变量(手机号/绑定状态/账号信息等)
|
||
data.replies(keyword) - 回复内容
|
||
timestamp(date) - 时间
|
||
```
|
||
|
||
---
|
||
|
||
需要我进一步查看某个具体索引的样例数据,或者按特定维度做分析吗?
|
||
user: [message_id: om_x100b6cfa8ddf34a8b34f7f9a184e54a]
|
||
李承龙: 索引user_behavior_buried_points的字段都有哪些
|
||
assistant: `user_behavior_buried_points` 索引的完整字段列表如下:
|
||
|
||
| 字段名 | 类型 | 可检索 | 说明 |
|
||
|--------|------|--------|------|
|
||
| `accountId` | long | ✅ | 账号ID |
|
||
| `accountName` | text | ❌ (index:false) | 账号名称 |
|
||
| `action` | keyword | ✅ | 动作类型 |
|
||
| `activeTime` | long | ✅ | 事件时间戳(秒级) |
|
||
| `buryingPointId` | long | ✅ | 埋点ID |
|
||
| `buryingPointName` | text | ❌ (index:false) | 埋点名称 |
|
||
| `buryingPointSubId` | long | ✅ | 子埋点ID |
|
||
| `buryingPointSubName` | text | ❌ (index:false) | 子埋点名称 |
|
||
| `button` | keyword | ✅ | 按钮标识 |
|
||
| `cId` | text (standard) | ✅ | 组件实例ID |
|
||
| `cType` | text (standard) | ✅ | 组件类型(如 core_listening_drag) |
|
||
| `cardId` | long | ✅ | 卡片ID |
|
||
| `cardName` | text (standard) | ✅ | 卡片名称 |
|
||
| `characterId` | long | ✅ | 角色ID |
|
||
| `characterName` | text | ❌ (index:false) | 角色名称 |
|
||
| `componentId` | long | ✅ | 组件ID |
|
||
| `componentName` | text (standard) | ✅ | 组件名称 |
|
||
| `courseLevel` | keyword | ✅ | 课程等级(如 L1、L2) |
|
||
| `dataVersion` | keyword | ✅ | 数据版本 |
|
||
| `ex2` | keyword | ✅ | 扩展字段2 |
|
||
| `ex3` | keyword | ✅ | 扩展字段3 |
|
||
| `ex4` | keyword | ✅ | 扩展字段4 |
|
||
| `ex5` | keyword | ✅ | 扩展字段5 |
|
||
| `ex6` | keyword | ✅ | 扩展字段6 |
|
||
| `finishStatus` | text | ✅ | 完成状态 |
|
||
| `learningModuleId` | long | ✅ | 学习模块ID |
|
||
| `learningModuleName` | text (standard) | ✅ | 学习模块名称 |
|
||
| `learningPointId` | long | ✅ | 知识点ID |
|
||
| `learningPointName` | text (standard) | ✅ | 知识点名称 |
|
||
| `lessonId` | long | ✅ | 课时ID |
|
||
| `lessonName` | text (standard) | ✅ | 课时名称 |
|
||
| `location` | keyword | ✅ | 位置标识 |
|
||
| `num1` | double | ✅ | 数值扩展1 |
|
||
| `num2` | double | ✅ | 数值扩展2 |
|
||
| `num3` | double | ✅ | 数值扩展3 |
|
||
| `seasonPackageId` | long | ✅ | 季度包ID |
|
||
| `seasonPackageName` | text (standard) | ✅ | 季度包名称 |
|
||
| `stepDuration` | long | ✅ | 步骤耗时(秒) |
|
||
| `unitId` | long | ✅ | 单元ID |
|
||
| `unitName` | text (standard) | ✅ | 单元名称 |
|
||
| `versionId` | text | ✅ | 客户端版本号 |
|
||
|
||
**总计 38 个字段**,其中:
|
||
- 可精确检索(keyword/long/double):25 个
|
||
- 全文检索(text+standard):9 个
|
||
- 不可检索(index:false):4 个(accountName、buryingPointName、buryingPointSubName、characterName)
|
||
|
||
数据量 **3741万条**,占用 11.6GB。
|
||
user: [message_id: om_x100b6cfa8859f8e8b16f7789094ee17]
|
||
李承龙: buryingPointName和buryingPointSubName都有哪些
|
||
assistant: 由于 `buryingPointName` 和 `buryingPointSubName` 字段是 `index: false`(不可检索/聚合),我需要通过查文档来获取它们的实际值:
|
||
assistant: 整理完毕,以下是完整的 `buryingPointName` 和 `buryingPointSubName` 枚举:
|
||
|
||
---
|
||
|
||
## buryingPointId → buryingPointName 对照表
|
||
|
||
| buryingPointId | buryingPointName | 数据量 |
|
||
|---|---|---|
|
||
| 100 | 登录创角流程 | 87万 |
|
||
| 101 | *(空)* | 1.9万 |
|
||
| 102 | *(空)* | 6.3万 |
|
||
| 103 | *(空)* | 40万 |
|
||
| 200 | 新手引导流程 | 2.2万 |
|
||
| 300 | 关卡内操作 | 450万 |
|
||
| 400 | 组件内操作 | **2651万** |
|
||
| 500 | 主框架操作 | 130万 |
|
||
| 600 | 收集页操作 | 12万 |
|
||
| 700 | 知识模块操作 | 6.2万 |
|
||
| 800 | 交易相关流程 | 2.2万 |
|
||
| 900 | *(空)* | 64 |
|
||
| 1000 | *(空)* | 5万 |
|
||
| 1100 | *(空)* | 1.6万 |
|
||
| 1200 | *(空)* | 276万 |
|
||
| 1300 | *(空)* | 69万 |
|
||
|
||
---
|
||
|
||
## buryingPointSubId → buryingPointSubName 对照表
|
||
|
||
### 100 - 登录创角流程
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 15 | 点击启动时 |
|
||
| 16 | 点击切换账号时 |
|
||
| 17 | 点击选择角色时 |
|
||
| 19 | 点击出发时 |
|
||
| 21 | 选择性别男 |
|
||
| 22 | 选择性别女 |
|
||
| 23 | 点击随机按钮时 |
|
||
| 24 | 点击键入名字框体时 |
|
||
| 25 | 点击选择生日框体时 |
|
||
| 26 | 点击下一步时 |
|
||
| 27 | 点击上一步时 |
|
||
| 28~72 | *(空,后期新增的未命名子埋点)* |
|
||
|
||
### 200 - 新手引导流程
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 1 | 点击无人机附近地面时 |
|
||
| 2 | 点击触发无人机气泡时 |
|
||
| 3 | 点击正确选项时 |
|
||
| 4 | 点击错误选项时 |
|
||
| 5 | 点击轻点后说话按钮时 |
|
||
| 6 | 点击发送按钮时 |
|
||
| 8 | 点击小喇叭播放语音时 |
|
||
| 9 | 点击重试一次按钮时 |
|
||
| 10 | 点击解锁手环时 |
|
||
|
||
### 300 - 关卡内操作
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 1 | 点击气泡触发组件时 |
|
||
| 2 | TimeAction触发组件时 |
|
||
| 3 | 点击打开任务板 |
|
||
| 4 | 点击关闭任务板 |
|
||
| 5 | 点击任务板开始自动寻路时 |
|
||
| 6 | 自动寻路触发组件时 |
|
||
| 9 | 打开Brainy界面时 |
|
||
| 10 | 打开备忘录时 |
|
||
| 12 | 点击知识模块时 |
|
||
| 13 | 点击知识点时 |
|
||
| 14 | 点击下一个问题时 |
|
||
| 15 | 点击关闭界面时 |
|
||
| 16 | 点击完成时 |
|
||
| 17 | 点击开始知识回顾时 |
|
||
|
||
### 400 - 组件内操作(最大,2651万条)
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 1 | 组件通过时 |
|
||
| 2 | 组件失败(结果为Fail)时 |
|
||
| 3 | 组件结果为Pass时 |
|
||
| 4 | 组件结果为Good时 |
|
||
| 5 | 组件结果为Excellent时 |
|
||
| 6 | 点击离开时 |
|
||
| 8 | 点击下一句时 |
|
||
| 9 | 点击播放音频时 |
|
||
| 10 | 点击展开释义时 |
|
||
| 11 | 点击选项时 |
|
||
| 12 | 点击下一句时 |
|
||
| 13 | 点击播放音频时 |
|
||
| 14 | 点击展开释义时 |
|
||
| 15 | 点击查看文本时 |
|
||
| 19 | 点击选项时 |
|
||
| 20 | 点击提示按钮时 |
|
||
| 35 | 点击选项时 |
|
||
| 36 | 点击继续时 |
|
||
| 37 | 点击收起时 |
|
||
| 38 | 点击展开时 |
|
||
| 39 | 点击翻译时 |
|
||
| 40 | 点击要翻译的句子时 |
|
||
| 41 | 点击退出翻译时 |
|
||
| 42 | 点击小喇叭时 |
|
||
| 43 | 点击开始任务时 |
|
||
| 44 | 点击麦克风按钮时 |
|
||
| 45 | 点击发送时 |
|
||
| 46 | 点击取消发送时 |
|
||
| 47 | 点击小喇叭时 |
|
||
| 50 | 打开Brainy时 |
|
||
| 51 | 关闭Brainy时 |
|
||
| 52 | 点击Brainy小喇叭时 |
|
||
| 53~158 | *(空,后期新增)* |
|
||
|
||
### 500 - 主框架操作
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 1 | 点击关卡卡片时 |
|
||
| 2 | 点击开始关卡时 |
|
||
| 3 | 点击继续关卡时 |
|
||
| 4 | 点击查看结算记录列表时 |
|
||
| 5 | 点击重新开始时 |
|
||
| 6 | 点击继续时 |
|
||
| 7 | 点击关闭「是否继续」的二次弹窗时 |
|
||
| 8 | 点击下发导航条切换故事时 |
|
||
| 9 | 点击下方Story按钮时 |
|
||
| 10 | 点击下方Collection按钮时 |
|
||
| 11 | 点击学习中心按钮时 |
|
||
| 12 | 点击学习模块按钮时 |
|
||
| 13 | 点击能力训练按钮时 |
|
||
| 14 | 点击单元挑战按钮时 |
|
||
| 15 | 点击进入角色信息页面按钮时 |
|
||
|
||
### 600 - 收集页操作
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 1 | 点击引导高亮的卡牌时 |
|
||
| 2 | 点击立刻升级时 |
|
||
| 3 | 点击卡牌详情时 |
|
||
| 4 | 点击关闭卡牌详情时 |
|
||
| 5 | 点击立刻升级时 |
|
||
| 6 | 点击购买高光时刻二次确认弹窗确认时 |
|
||
| 7 | 点击购买高光时刻二次确认弹窗返回时 |
|
||
| 8 | 点击加号时 |
|
||
| 9 | 点击减号时 |
|
||
| 10 | 点击加号时 |
|
||
| 11 | 点击再想想时 |
|
||
| 12 | 点击兑换时 |
|
||
|
||
### 700 - 知识模块操作
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 1 | 点击知识模块页签时 |
|
||
| 2 | 点击能力训练页签时 |
|
||
| 3 | 点击知识模块卡片时 |
|
||
| 5 | 点击知识点时 |
|
||
| 15 | 练习中点击选项时 |
|
||
| 16 | 练习中点击选好了时 |
|
||
| 17 | 练习中点击小喇叭时 |
|
||
| 18 | 练习结束点击离开按钮时 |
|
||
| 19 | 点击进入挑战按钮时 |
|
||
| 20 | 点击离开挑战按钮时 |
|
||
| 21 | 离开挑战二次确认点击放弃时 |
|
||
| 22 | 离开挑战二次确认点击继续时 |
|
||
| 23 | 重新进入挑战点击继续时 |
|
||
| 24 | 重新进入挑战点击重新开始时 |
|
||
| 25 | 点击选项时 |
|
||
| 26 | 点击上一题时 |
|
||
| 27 | 点击下一题时 |
|
||
| 28 | 点击我不会了跳过时 |
|
||
| 29 | 点击麦克风按钮时 |
|
||
| 30 | 点击麦克风按钮取消时 |
|
||
| 31 | 点击麦克风按钮发送时 |
|
||
| 32 | 点击返回主页时 |
|
||
| 33 | 点击查看题目时 |
|
||
| 34 | 点击选过的题目跳转时 |
|
||
|
||
### 800 - 交易相关流程
|
||
|
||
| subId | subName |
|
||
|---|---|
|
||
| 1 | 点击 S1 季度包入口时 |
|
||
| 17 | 点击「我的订单」入口时 |
|
||
| 22 | 点击活动入口「完课福利」时 |
|
||
| 29 | 点击主框架底部的 S2 按钮时 |
|
||
|
||
### 900 / 1000 / 1100 / 1200 / 1300
|
||
|
||
这几个埋点的 `buryingPointName` 和 `buryingPointSubName` **均为空字符串**,属于较新的埋点,尚未在数据中写入名称字段。只有数字ID可区分。
|
||
|
||
---
|
||
|
||
**总结:** 已命名的核心模块是 100(登录创角)、200(新手引导)、300(关卡)、400(组件)、500(主框架)、600(收集页)、700(知识模块)、800(交易)。900~1300 是较新添加的埋点,名称字段为空,需要结合客户端代码才能确认具体含义。
|
||
user: [message_id: om_x100b6cfa9e89c4bcb39e400681a27a5]
|
||
李承龙: [Replying to: "由于 buryingPointName 和 buryingPointSubName 字段是 index: false(不可检索/聚合),我需要通过查文档来获取它们的实际值:"]
|
||
|
||
查的什么文档
|
||
Reply target of current user message (untrusted, for context):
|
||
```json
|
||
{
|
||
"body": "由于 buryingPointName 和 buryingPointSubName 字段是 index: false(不可检索/聚合),我需要通过查文档来获取它们的实际值:"
|
||
}
|
||
```
|
||
assistant: 抱歉表述不准确。这里说的"查文档"不是指什么外部文档,而是指 **直接从 ES 索引中取样本数据(document)**。
|
||
|
||
因为 `buryingPointName` 和 `buryingPointSubName` 这两个字段被设置为 `index: false`,意味着:
|
||
- ❌ 不能对它们做 `terms` 聚合(无法直接列出所有枚举值)
|
||
- ❌ 不能用它们做搜索/过滤
|
||
|
||
所以我的做法是:按每个 `buryingPointId`(这个字段可聚合)分别取一条原始记录(ES document),从返回的 `_source` 里读出对应的 `buryingPointName` 和 `buryingPointSubName` 字段值。
|
||
|
||
本质就是:**用可检索的 ID 字段做查询条件 → 取返回的原始文档 → 读里面不可检索的 name 字段**。
|
||
user: [message_id: om_x100b6cfa94e298b0b20966c5200f3ae]
|
||
李承龙: 统计一下埋点id1100,子id1,有多少用户,以及有多少次
|
||
assistant: 埋点 ID=1100,子 ID=1:
|
||
|
||
- **总次数:** 8,281 次
|
||
- **去重用户数(accountId):** 5,216 人
|