Once you have created a Pinecone index, you can add, update, and query the vectors within it. In this comprehensive guide, we will explore the upsert and query operations in Pinecone.
Upserting Vectors
Upserting vectors involves adding new vectors to the index or updating existing ones. Pinecone provides a convenient method for upserting vectors.
Prepare Vectors: Create a list of vectors to upsert, including their IDs and embeddings.
Upsert Vectors:
Python
vectors = [
{“id”: “vector1”, “values”: [0.1, 0.2, …]},
{“id”: “vector2”, “values”: [0.3, 0.4, …]}
]
collection.upsert(vectors=vectors)
Querying the Index
Create a Query Vector: Generate a query vector using the same embedding model used to create the index vectors.
Perform Query:
Python
query_vector = [0.2, 0.3, …]results = collection.query(
query_vector=query_vector,
top_k=5
)
Accessing Results
The results will be a list of dictionaries, each containing the vector ID, score, and other metadata.
Python
for result in results["matches"]:
print(result["id"])
print(result["score"])
Additional Considerations
- Namespaces: You can use namespaces to organize your data within a collection.
- Filters: You can apply filters to your queries to narrow down the results based on specific criteria.
- Batching: For large datasets, consider batching your upserts and queries to improve performance.
By understanding the upsert and query operations in Pinecone, you can effectively manage and interact with your vector database. The ability to add, update, and query vectors efficiently is essential for building powerful applications based on vector search.