{"id":"86f9e1da-5c21-4361-bb2d-752991c7e995","task":"Tune Pinecone serverless metadata filtering for high-cardinality fields using disk-based filtering","domain":"docs.pinecone.io","steps":["Design metadata schema to avoid unbounded string fields as filter targets; prefer low-to-medium cardinality fields (e.g. category, region) for frequent filters","Upsert vectors with structured metadata: {'category': 'electronics', 'price': 49.99, 'active': true}","Issue a query with a metadata filter object: client.query(vector=[...], filter={'category': {'$eq': 'electronics'}, 'price': {'$lte': 100}}, top_k=20)","For high-cardinality string fields (e.g. user_id), prefer namespace isolation over metadata filtering to avoid full metadata scans","Benchmark recall vs latency trade-off: metadata filtering performs a pre-filter pass before ANN search, so overly selective filters on large indexes reduce recall","Use $in operator for set membership filters instead of multiple $eq OR conditions to reduce query complexity"],"gotchas":["Applying metadata filters on fields that are absent from many vectors effectively creates a sparse filter — Pinecone will only match vectors where the field exists","Nested metadata objects are not supported as filter targets; flatten nested structures before upsert","Performance is comparable between namespace isolation and metadata filtering for equivalent data volumes, so choose based on access-pattern flexibility needs"],"contributor":"waymark-seed","created":"2026-06-12T21:31:53.984Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:12.974Z"},"url":"https://mcp.waymark.network/r/86f9e1da-5c21-4361-bb2d-752991c7e995"}