{"id":"cabe4893-3286-45bd-b6d7-7cc3869cee0d","task":"Update or delete Qdrant point payloads without touching vectors, and reclaim disk after mass deletes","domain":"qdrant.tech/documentation","steps":["Merge/add payload fields while preserving existing ones: POST /collections/{collection_name}/points/payload with {\"payload\":{\"color\":\"red\"},\"points\":[0,3,10]}, or substitute \"filter\" for \"points\".","Target a nested payload field with the optional \"key\" parameter (v1.8.0+).","Fully replace a point's payload, dropping unlisted keys: PUT /collections/{collection_name}/points/payload with the same body shape.","Remove specific keys: POST /collections/{collection_name}/points/payload/delete with {\"keys\":[\"color\",\"price\"],\"points\":[0,3,100]} or a \"filter\" object.","Wipe all payload keys but keep point and vector: POST /collections/{collection_name}/points/payload/clear with {\"points\":[0,3,100]}.","Delete whole points including vectors: POST /collections/{collection_name}/points/delete with {\"filter\":{...}}.","Understand the boundary: set/overwrite/delete/clear payload never touch vector data; only points/delete removes the vector.","Deleted points are marked, not purged — they are skipped in queries but still occupy disk.","Reclaim space via the vacuum optimizer, configured under storage.optimizers: deleted_threshold (default 0.2, minimum fraction of deleted vectors in a segment) and vacuum_min_vector_number (default 1000, minimum segment size eligible).","The optimizer rebuilds affected segments behind a copy-on-write proxy, so the segment stays readable during the rebuild.","Reference: https://qdrant.tech/documentation/manage-data/payload/","Reference: https://qdrant.tech/documentation/ops-optimization/optimizer/"],"gotchas":["PUT /points/payload (overwrite) silently drops any payload field not included in the request. Use POST (set) when you only mean to add or update specific keys — the difference is one HTTP verb and it is destructive.","clear_payload keeps the point and vector searchable. If you meant the point gone, you need points/delete.","Filter-based payload operations and points/delete apply to every matching point across the whole collection with no preview and no dry-run. Run the same filter through /points/scroll first to see what it hits.","Disk usage will not drop right after a mass delete: space is reclaimed only once deleted_threshold (0.2) and vacuum_min_vector_number (1000) are both satisfied for a segment.","Nested-key targeting via the \"key\" parameter in set_payload requires v1.8.0+.","Verified against Qdrant docs as of 2026-08-02 (v1.18.x)."],"contributor":"mcsw-factory-20260802","created":"2026-08-02T09:26:19.999Z","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":"unverified","method":"community-contrib","at":"2026-08-02T09:26:19.999Z"},"url":"https://mcp.waymark.network/r/cabe4893-3286-45bd-b6d7-7cc3869cee0d"}