> ## Documentation Index
> Fetch the complete documentation index at: https://javaai.pig4cloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pinecone 向量数据库

Spring AI 中的 Pinecone 向量数据库集成了 Pinecone 基于云的向量功能，提供向量存储和搜索能力。

## 概述

Pinecone 向量数据库支持：

* 基于云的向量存储
* 实时相似性搜索
* 托管服务
* 可扩展架构

## 特性

<CardGroup cols={2}>
  <Card title="云" icon="cloud">
    基于云的存储
  </Card>

  <Card title="托管" icon="cogs">
    托管服务
  </Card>

  <Card title="实时" icon="clock">
    实时搜索
  </Card>

  <Card title="可扩展" icon="arrows-up-down-left-right">
    自动扩展
  </Card>
</CardGroup>

## 实现

### 基本设置

```xml theme={"system"}
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-pinecone-vectordb</artifactId>
    <version>${spring-ai.version}</version>
</dependency>
```

### 配置

```properties theme={"system"}
# Pinecone 向量数据库配置
spring.ai.pinecone.vectordb.enabled=true
spring.ai.pinecone.vectordb.api-key=your-api-key
spring.ai.pinecone.vectordb.environment=us-west1-gcp
spring.ai.pinecone.vectordb.index-name=vectors
```

### 用法

```java theme={"system"}
@Service
public class PineconeVectorService {
    private final PineconeVectorClient vectorClient;

    public PineconeVectorService(PineconeVectorClient vectorClient) {
        this.vectorClient = vectorClient;
    }

    public void storeVector(String id, float[] vector, Map<String, Object> metadata) {
        vectorClient.store(id, vector, metadata);
    }

    public List<SearchResult> searchSimilar(float[] queryVector, int k) {
        return vectorClient.search(queryVector, k);
    }
}
```

## 向量操作

### 1. 向量存储

```java theme={"system"}
@Configuration
public class PineconeVectorStorageConfig {
    @Bean
    public VectorStorage pineconeVectorStorage(PineconeVectorProperties properties) {
        return new PineconeVectorStorage(properties);
    }
}
```

### 2. 相似性搜索

```java theme={"system"}
@Configuration
public class PineconeSimilaritySearchConfig {
    @Bean
    public SimilaritySearch pineconeSimilaritySearch(PineconeVectorProperties properties) {
        return new PineconeSimilaritySearch(properties);
    }
}
```

### 3. 索引管理

```java theme={"system"}
@Service
public class IndexService {
    private final PineconeVectorClient vectorClient;

    public void createIndex(String name, int dimension) {
        vectorClient.createIndex(name, dimension);
    }

    public void deleteIndex(String name) {
        vectorClient.deleteIndex(name);
    }
}
```

## 高级特性

### 自定义索引配置

```java theme={"system"}
@Configuration
public class IndexConfig {
    @Bean
    public IndexConfig indexConfig() {
        return IndexConfig.builder()
            .name("custom-vectors")
            .dimension(1536)
            .metricType(MetricType.COSINE)
            .podType(PodType.P1)
            .build();
    }
}
```

### 命名空间管理

```java theme={"system"}
@Configuration
public class NamespaceConfig {
    @Bean
    public NamespaceConfig namespaceConfig() {
        return NamespaceConfig.builder()
            .name("custom-namespace")
            .build();
    }
}
```

### 监控

```properties theme={"system"}
management.endpoints.web.exposure.include=pinecone-vectordb
management.endpoint.pinecone-vectordb.enabled=true
```

## 最佳实践

<Note>
  使用 Pinecone 向量数据库时，请考虑以下最佳实践：
</Note>

* **索引设计**：设计高效的索引结构
* **命名空间策略**：有效组织数据
* **API 密钥管理**：保护 API 密钥
* **资源管理**：选择合适的 Pod 类型
* **监控**：设置全面的监控

## 故障排除

常见问题及解决方案：

1. **连接问题**
   * 验证 API 密钥
   * 检查环境
   * 查看网络设置

2. **性能问题**
   * 优化索引配置
   * 调整 Pod 类型
   * 查看查询模式

3. **存储问题**
   * 监控索引大小
   * 执行清理
   * 查看保留策略

<Card title="文档有误？请协助编辑" icon="pencil" href="https://github.com/javaai-pig4cloud-com/javaai-docs/edit/main/spring-ai/api/vectordbs/pinecone.mdx">
  发现文档问题？点击此处直接在 GitHub 上编辑并提交 PR，帮助我们改进文档！
</Card>
