metadata filtering

Restricting vector search to documents matching metadata conditions. Enables filtered semantic search (e.g., "similar documents from the last 30 days in category X").

Syntax

vector-databases
results = collection.query(vector, filter={ "field": { "$eq": "value" } })

Example

vector-databases
# ChromaDB metadata filter:
results = collection.query(
    query_embeddings=[query_vec],
    n_results=5,
    where={
        "$and": [
            {"category": {"$eq": "AI"}},
            {"year": {"$gte": 2024}}
        ]
    },
    where_document={"$contains": "transformer"}
)

# Pinecone filter:
results = index.query(
    vector=query_vec,
    filter={"$and": [{"category": "AI"}, {"published": True}]}
)