package main
import (
"context"
"encoding/json"
"fmt"
"log"
"github.com/pinecone-io/go-pinecone/v7/pinecone"
)
func prettifyStruct(obj interface{}) string {
bytes, _ := json.MarshalIndent(obj, "", " ")
return string(bytes)
}
func main() {
ctx := context.Background()
pc, err := pinecone.NewClient(pinecone.NewClientParams{
ApiKey: "YOUR_API_KEY",
})
if err != nil {
log.Fatalf("Failed to create Client: %v", err)
}
// To get the unique host for an index,
// see https://docs.pinecone.io/guides/indexes/target-an-index
idxConnection, err := pc.Index(pinecone.NewIndexConnParams{Host: "INDEX_HOST", Namespace: "articles"})
if err != nil {
log.Fatalf("Failed to create IndexConnection for Host: %v", err)
}
// Replace with your query embedding, which must match the index's dimension (1536 in this example)
queryVector := make([]float32, 1536)
for i := range queryVector {
queryVector[i] = 0.1
}
res, err := idxConnection.SearchDocuments(ctx, &pinecone.SearchDocumentsRequest{
TopK: 3,
ScoreBy: []pinecone.DocumentScoringMethod{
{Type: pinecone.DocumentScoringTypeDenseVector, Fields: []string{"embedding"}, Values: &queryVector},
},
IncludeFields: []string{"title"},
})
if err != nil {
log.Fatalf("Failed to search documents: %v", err)
}
fmt.Println(prettifyStruct(res))
}