Searches for nearest neighbors in the encrypted index using vector similarity search. Supports single vector queries, batch queries, and semantic search with text content.
Copy
Ask AI
# Single vector queryindex.query(query_vectors=vector, top_k=10)# Batch vector queriesindex.query(query_vectors=vectors, top_k=10)# Semantic search with textindex.query(query_contents=text, top_k=10)
For single queries: List[Dict] - A list of result dictionaries.
For batch queries: List[List[Dict]] - A list of result lists, one for each query vector.
# Basic similarity searchquery_vector = [0.1, 0.2, 0.3, 0.4]results = index.query(query_vectors=query_vector, top_k=5)# Access results (single query returns a flat list)for result in results: print(f"ID: {result['id']}, Distance: {result['distance']}")
Batch vector queries:
Copy
Ask AI
import numpy as np# Query multiple vectors at oncequery_vectors = [ [0.1, 0.2, 0.3, 0.4], [0.5, 0.6, 0.7, 0.8], [0.9, 1.0, 1.1, 1.2]]batch_results = index.query(query_vectors=query_vectors, top_k=3)# Process each query's resultsfor i, query_results in enumerate(batch_results): print(f"Results for query {i+1}:") for result in query_results: print(f" ID: {result['id']}, Distance: {result['distance']}")
# Search using text contentresults = index.query( query_contents="machine learning healthcare applications", top_k=10)for result in results: print(f"Found: {result['id']}") if 'contents' in result: print(f"Content: {result['contents'][:100]}...")
Advanced filtering and options:
Copy
Ask AI
# Query with metadata filters and custom optionsresults = index.query( query_vectors=[0.1] * 384, top_k=20, n_probes=5, # Search more clusters for better recall filters={'category': 'healthcare', 'priority': 'high'}, include=['distance', 'metadata', 'contents'], # Must include 'contents' to access it greedy=True # Use greedy search for potentially better results)for result in results: print(f"ID: {result['id']}") print(f"Distance: {result['distance']:.4f}") print(f"Category: {result['metadata']['category']}") print(f"Content preview: {result['contents'][:50]}...") print("---")