Pinecone Index 索引管理
索引是 Pinecone 的最高层容器。与传统的表不同,Pinecone 的索引决定了底层硬件的分配方式。
#1. 索引类型:Serverless vs Pod-based
#Serverless (推荐)
- 按量计费:只需为存储和读取的数据量付费。
- 自动扩容:无需关心底层资源。
- 场景:绝大多数现代 AI 应用。
#Pod-based (传统模式)
- 固定成本:你购买特定的虚拟机资源。
- 可预测延迟:适合对性能有极高且稳定要求的场景。
#2. 核心配置参数
在创建索引时,以下三个参数至关重要:
- Dimension (维度):向量的长度。必须与你的 Embedding 模型产出一致(如 OpenAI 是 1536)。
- Metric (度量标准):
cosine(余弦相似度): 推荐用于 NLP。euclidean(欧氏距离)。dotproduct(点积)。
- Spec (规格):定义部署的云平台和地域。
#3. 索引的生命周期操作
python# 列出所有索引 print(pc.list_indexes()) # 查看索引详细状态 desc = pc.describe_index("my-index") print(desc.status['ready']) # 是否已就绪 # 配置索引 (例如修改副本数,仅限 Pod-based) pc.configure_index("my-index", replicas=2) # 删除索引 (数据会立即清空且不可恢复) pc.delete_index("my-index")
#4. 统计信息查看
你可以查看索引中有多少向量,以及各个命名空间的数据分布:
pythonindex = pc.Index("my-index") stats = index.describe_index_stats() print(stats.total_vector_count)
#5. 最佳实践
- 同地域部署:尽可能让你的应用程序(如 Lambda 或 EC2)与 Pinecone 索引处于同一个云服务商地域(如均为
aws/us-east-1),以降低网络延迟。 - 合理使用元数据:不要在元数据中存储超大的文本块,这会增加索引的大小和查询成本。只存储 ID、URL 或关键过滤字段。
下一步:学习如何通过 Namespaces 命名空间 实现多租户或多类别管理。