[ PROMPT_NODE_24404 ]
Vectorize 配置说明
[ SKILL_DOCUMENTATION ]
# Vectorize 配置
## 创建索引
bash
npx wrangler vectorize create my-index --dimensions=768 --metric=cosine
**⚠️ 维度和度量标准是不可变的** - 创建后无法更改。
## Worker 绑定
c
// wrangler.jsonc
{
"vectorize": [
{ "binding": "VECTORIZE", "index_name": "my-index" }
]
}
typescript
interface Env {
VECTORIZE: Vectorize;
}
## 元数据索引
**必须在插入向量之前创建** - 现有向量不会被追溯索引。
bash
wrangler vectorize create-metadata-index my-index --property-name=category --type=string
wrangler vectorize create-metadata-index my-index --property-name=price --type=number
| 类型 | 用途 |
|------|---------|
| `string` | 分类、标签(索引前 64 字节) |
| `number` | 价格、时间戳 |
| `boolean` | 标志位 |
## CLI 命令
bash
# 索引管理
wrangler vectorize list
wrangler vectorize info
wrangler vectorize delete
# 向量操作
wrangler vectorize insert --file=embeddings.ndjson
wrangler vectorize get --ids=id1,id2
wrangler vectorize delete-by-ids --ids=id1,id2
# 元数据索引
wrangler vectorize list-metadata-index
wrangler vectorize delete-metadata-index --property-name=field
## 批量上传 (NDJSON)
{"id": "1", "values": [0.1, 0.2, ...], "metadata": {"category": "docs"}}
{"id": "2", "values": [0.4, 0.5, ...], "namespace": "tenant-abc"}
**限制:** 每个文件最多 5000 个向量,最大 100 MB
## 基数最佳实践
对高基数数据进行分桶:
typescript
// ❌ 毫秒级时间戳
metadata: { timestamp: Date.now() }
// ✅ 5 分钟分桶
metadata: { timestamp_bucket: Math.floor(Date.now() / 300000) * 300000 }
## 生产环境检查清单
1. 使用正确的维度创建索引
2. 优先创建元数据索引
3. 测试批量上传
4. 配置绑定
5. 部署 Worker
6. 验证查询