- Delete documents: Delete documents by ID, by metadata filter, or delete every document in the namespace.
- Delete records: The same three options for a vector index.
Delete documents
In an index with a document schema, delete documents by ID, by metadata filter, or delete the whole namespace’s contents. A request specifies exactly one ofids, filter, or delete_all, and can name up to 1,000 IDs.
Delete documents by ID
To delete specific documents, pass their IDs:Delete documents by metadata
To delete every document matching a metadata filter expression, pass afilter. The response reports how many documents matched:
Delete all documents in a namespace
To empty a namespace without deleting the namespace itself, passdelete_all:
delete_all return an empty response body. Only a filtered delete reports matched_records.
Text-match operators (
$match_phrase, $match_all, $match_any) aren’t supported in a filtered delete, and a request carrying one is rejected with a 400. To delete documents by text match, search for them first and delete the IDs the search returns.Delete records
In a vector index, delete records by ID, by metadata filter, or delete every record in the namespace.Delete records by ID
Since Pinecone records can always be efficiently accessed using their ID, deleting by ID is the most efficient way to remove specific records from a namespace.To remove records from the default namespace, specify
"__default__" as the namespace in your request.Delete records by metadata
To delete records from a namespace based on their metadata values, pass a metadata filter expression to thedelete operation. This deletes all records in the namespace that match the filter expression.
For example, the following code deletes all records with a genre field set to documentary from namespace example-namespace:
Delete all records in a namespace
To delete all of the records in a namespace but not the namespace itself, provide anamespace parameter and specify the appropriate deleteAll parameter for your SDK. To target the default namespace, set namespace to "__default__".