cda1cd62
tangwang
意图分析&应用 baseline
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
## prompt
参考 @docs/常用查询 - ES.md 帮我查询 tenant_Id=163的@search_products.json (1314-1332) 这些字段的统计分布,也就是这里每个字段的所有的值及其对应的文档数
已按 `docs/常用查询 - ES.md` 的写法,在索引 **`search_products_tenant_163`** 上做了 `terms` 聚合(租户已按索引拆分,用 `match_all` 即可,等价于只查 tenant 163)。集群在本机 `localhost:9200` 上执行成功。
## 结果概要
- **总文档数**:8977
- 六个字段的 **`sum_other_doc_count` 均为 0**,在 `size: 20000` 下没有截断,即:**当前数据里每个字段的取值都已全部列出**。
- **`__missing__`**:来自聚合里的 `"missing": "__missing__"`,表示该字段缺失或为空的文档数(便于和「有值」一起看)。
- **`option1_values` / `option2_values`** 多为多值数组:同一篇文档可落入多个桶,因此 **各桶 `doc_count` 之和会大于 8977**(这是 ES `terms` 的正常语义,表示「含该取值的文档数」,不是互斥分区)。
- **`option1_name` / `option2_name` / `option3_name`** 及 **`option3_values`** 的桶计数之和与文档关系更接近单值/稀疏(见下方校验)。
### `option1_name`(13 个取值)
| 值 | 文档数 |
|---:|---:|
| __missing__ | 4538 |
| Size | 2916 |
| Color | 1174 |
| 颜色 | 244 |
| COLOR | 56 |
| color | 16 |
| Colour | 15 |
| Variant | 9 |
| Style | 3 |
| Colors | 2 |
| Scent | 2 |
| Cup Size | 1 |
| Pattern Name | 1 |
### `option2_name`(13 个取值)
| 值 | 文档数 |
|---:|---:|
| __missing__ | 4666 |
| Color | 2879 |
| Size | 1134 |
| 尺码 | 244 |
| SIZE | 17 |
| size | 16 |
| Style | 12 |
| Cup Size | 4 |
| Item Package Quantity | 1 |
| Number of Items | 1 |
| Ring Size | 1 |
| Scent | 1 |
| Team Name | 1 |
### `option3_name`(11 个取值)
| 值 | 文档数 |
|---:|---:|
| __missing__ | 8831 |
| Fit Type | 52 |
| Special Size | 31 |
| Number of Items | 17 |
| Special Size Type | 16 |
| Team Name | 15 |
| Material Type | 8 |
| Style | 4 |
| Configuration | 1 |
| Hand Orientation | 1 |
| Pattern Name | 1 |
### `option1_values` / `option2_values`
- **桶数量**:`option1_values` **3463**,`option2_values` **3605**(完整列表过长,不宜贴在对话里)。
- **文档中出现最多的取值(前 10)**
- **option1_values**:`__missing__` 4538,其后如 Medium 749、Black 653、Large 635、8/9/White/10/7/Small…
- **option2_values**:`__missing__` 4666,其后如 L 1161、M 1158、S 1064、XL 1036、Black 876…
### `option3_values`(94 个桶,已全部枚举)
除 `__missing__` 8831 外,另有 93 个具体取值;上文 Markdown 表里已列全(从 Standard 到 `standard` 等)。
---
## 可复用的查询(与文档一致)
```bash
curl -sS -u 'saas:4hOaLaf41y2VuI8y' -X GET 'http://localhost:9200/search_products_tenant_163/_search?pretty' \
-H 'Content-Type: application/json' -d '{
"query": { "match_all": {} },
"size": 0,
"track_total_hits": true,
"aggs": {
"option1_name_dist": {
"terms": { "field": "option1_name", "size": 20000, "order": { "_count": "desc" }, "missing": "__missing__" }
},
"option2_name_dist": {
"terms": { "field": "option2_name", "size": 20000, "order": { "_count": "desc" }, "missing": "__missing__" }
},
"option3_name_dist": {
"terms": { "field": "option3_name", "size": 20000, "order": { "_count": "desc" }, "missing": "__missing__" }
},
"option1_values_dist": {
"terms": { "field": "option1_values", "size": 20000, "order": { "_count": "desc" }, "missing": "__missing__" }
},
"option2_values_dist": {
"terms": { "field": "option2_values", "size": 20000, "order": { "_count": "desc" }, "missing": "__missing__" }
},
"option3_values_dist": {
"terms": { "field": "option3_values", "size": 20000, "order": { "_count": "desc" }, "missing": "__missing__" }
}
}
}'
```
若某租户取值超过 2 万,需把 `size` 再加大或用 **composite** 分页扫完全部桶。
## 完整 JSON(含 3463 + 3605 条 value 分布)
已整理为:`/tmp/tenant163_option_fields_distribution.json`(约 620KB),结构为按字段分组的 `values: [{ "value", "doc_count" }, ...]`,便于你用脚本或表格工具打开。
如需去掉 `__missing__` 桶,从请求里删掉各聚合中的 `"missing": "__missing__"` 即可。
|