Zvec Logo

Search Documents

The query() method supports vector similarity search, conditional filtering (like a SQL WHERE clause), or both combined in a hybrid query.

It returns a list of Doc objects, each containing the matched document and its relevance score.

  • Use VectorQuery objects for vector similarity search
  • Use a filter expression string (e.g., status = 'published') for conditional filtering

Query Types


Quick Start Examples

import zvec

result = collection.query(  
    vectors=zvec.VectorQuery(
        field_name="dense_embedding",
        vector=[0.1] * 768,  # Replace with a real 768-dim embedding in practice
    ),
    topk=10,
)
import zvec

result = collection.query(  
    topk=10,
    vectors=[
        zvec.VectorQuery(field_name="dense_embedding", vector=[0.1] * 768),         
        zvec.VectorQuery(field_name="sparse_embedding", vector={1: 0.1, 37: 0.43}), 
    ],
    reranker=zvec.WeightedReRanker(  
        topn=3,
        metric=zvec.MetricType.IP,
        weights={
            "dense_embedding": 1.2,
            "sparse_embedding": 1.0,
        },
    ),
)
print(result)

Conditional Filtering

results = collection.query(filter="publish_year < 1999", topk=50)
import zvec

result = collection.query(          
    vectors=zvec.VectorQuery(
        field_name="dense_embedding",
        vector=[0.1] * 768,  # Replace with a real 768-dim embedding in practice
    ),
    filter="publish_year < 1999",   
    topk=10,
)