logo

Pinecone Index 索引管理

索引是 Pinecone 的最高层容器。与传统的表不同,Pinecone 的索引决定了底层硬件的分配方式。

1. 索引类型:Serverless vs Pod-based

Serverless (推荐)

  • 按量计费:只需为存储和读取的数据量付费。
  • 自动扩容:无需关心底层资源。
  • 场景:绝大多数现代 AI 应用。

Pod-based (传统模式)

  • 固定成本:你购买特定的虚拟机资源。
  • 可预测延迟:适合对性能有极高且稳定要求的场景。

这里有个很关键的时效性变化:
Pinecone 官方当前文档写得很清楚,2025-08-18 之后注册的 Standard 或 Enterprise 新客户已经不能再创建 pod-based indexes。默认主线就是 serverless。

2. 核心配置参数

在创建索引时,以下三个参数至关重要:

  • Dimension (维度):向量的长度。必须与你的 Embedding 模型产出一致(如 OpenAI 是 1536)。
  • Metric (度量标准)
    • cosine (余弦相似度): 推荐用于 NLP。
    • euclidean (欧氏距离)。
    • dotproduct (点积)。
  • Spec (规格):定义部署的云平台和地域。

另外,当前官方还支持创建 integrated embedding index。
这种场景下,除了 dimension / metric,还要考虑:

  • embed.model
  • embed.field_map

这会直接影响你是“自己嵌入再写入”,还是“直接 upsert source text”。

3. 索引的生命周期操作

# 列出所有索引
print(pc.list_indexes())

# 查看索引详细状态
desc = pc.describe_index("my-index")
print(desc.status['ready']) # 是否已就绪

# 配置索引
pc.configure_index("my-index", deletion_protection="enabled")

# 删除索引 (数据会立即清空且不可恢复)
pc.delete_index("my-index")

4. 统计信息查看

你可以查看索引中有多少向量,以及各个命名空间的数据分布:

index = pc.Index("my-index")
stats = index.describe_index_stats()
print(stats.total_vector_count)

5. 最佳实践

  1. 同地域部署:尽可能让你的应用程序(如 Lambda 或 EC2)与 Pinecone 索引处于同一个云服务商地域(如均为 aws/us-east-1),以降低网络延迟。
  2. 合理使用元数据:不要在元数据中存储超大的文本块,这会增加索引的大小和查询成本。只存储 ID、URL 或关键过滤字段。
  3. 提前规划 metadata schema:Pinecone 当前已经支持预声明哪些字段要被索引用于过滤,这对生产系统很有帮助。

下一步:学习如何通过 Namespaces 命名空间 实现多租户或多类别管理。

Pinecone Guide
AI Engineer

Pinecone Guide

Use Pinecone for vector search, semantic retrieval, and scalable RAG infrastructure.

Pinecone GuideIndexes 索引

Pinecone Index 索引管理

索引是 Pinecone 的最高层容器。与传统的表不同,Pinecone 的索引决定了底层硬件的分配方式。

#1. 索引类型:Serverless vs Pod-based

#Serverless (推荐)

  • 按量计费:只需为存储和读取的数据量付费。
  • 自动扩容:无需关心底层资源。
  • 场景:绝大多数现代 AI 应用。

#Pod-based (传统模式)

  • 固定成本:你购买特定的虚拟机资源。
  • 可预测延迟:适合对性能有极高且稳定要求的场景。

这里有个很关键的时效性变化:
Pinecone 官方当前文档写得很清楚,2025-08-18 之后注册的 Standard 或 Enterprise 新客户已经不能再创建 pod-based indexes。默认主线就是 serverless。

#2. 核心配置参数

在创建索引时,以下三个参数至关重要:

  • Dimension (维度):向量的长度。必须与你的 Embedding 模型产出一致(如 OpenAI 是 1536)。
  • Metric (度量标准)
    • cosine (余弦相似度): 推荐用于 NLP。
    • euclidean (欧氏距离)。
    • dotproduct (点积)。
  • Spec (规格):定义部署的云平台和地域。

另外,当前官方还支持创建 integrated embedding index。
这种场景下,除了 dimension / metric,还要考虑:

  • embed.model
  • embed.field_map

这会直接影响你是“自己嵌入再写入”,还是“直接 upsert source text”。

#3. 索引的生命周期操作

python
# 列出所有索引 print(pc.list_indexes()) # 查看索引详细状态 desc = pc.describe_index("my-index") print(desc.status['ready']) # 是否已就绪 # 配置索引 pc.configure_index("my-index", deletion_protection="enabled") # 删除索引 (数据会立即清空且不可恢复) pc.delete_index("my-index")

#4. 统计信息查看

你可以查看索引中有多少向量,以及各个命名空间的数据分布:

python
index = pc.Index("my-index") stats = index.describe_index_stats() print(stats.total_vector_count)

#5. 最佳实践

  1. 同地域部署:尽可能让你的应用程序(如 Lambda 或 EC2)与 Pinecone 索引处于同一个云服务商地域(如均为 aws/us-east-1),以降低网络延迟。
  2. 合理使用元数据:不要在元数据中存储超大的文本块,这会增加索引的大小和查询成本。只存储 ID、URL 或关键过滤字段。
  3. 提前规划 metadata schema:Pinecone 当前已经支持预声明哪些字段要被索引用于过滤,这对生产系统很有帮助。

下一步:学习如何通过 Namespaces 命名空间 实现多租户或多类别管理。

System Design

Core system design concepts and practical case studies

Learn the trade-offs and patterns that matter in technical interviews.

Open System Design →

Related Roadmaps