The type of metadata associated with each record.
Instantiation of Index is handled by Pinecone
The name of the index that will receive operations from this Index instance.
The configuration from the Pinecone client.
The namespace for the index.
Optional
indexHostUrl: stringAn optional override for the host address used for data operations.
Optional
additionalHeaders: HTTPHeadersAn optional object of additional header to send with each request.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
Cancel a specific import operation.
The id of the import operation to cancel.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-serverless-index');
console.log(await index.cancelImport('import-id'));
// {}
Delete all records from the targeted namespace. To delete all records from across all namespaces, delete the index using deleteIndex and create a new one using createIndex.
A promise that resolves when the delete is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
await index.describeIndexStats();
// {
// namespaces: {
// '': { recordCount: 10 },
// foo: { recordCount: 1 }
// },
// dimension: 8,
// indexFullness: 0,
// totalRecordCount: 11
// }
await index.deleteAll();
// Records from namespace 'foo' are now deleted. Records in other namespaces are not modified.
await index.describeIndexStats();
// {
// namespaces: {
// foo: { recordCount: 1 }
// },
// dimension: 8,
// indexFullness: 0,
// totalRecordCount: 1
// }
await index.deleteAll();
// Since no namespace was specified, records in default namespace '' are now deleted.
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
Delete records from the index by either an array of ids, or a filter object. See Filtering with metadata for more on deleting records with filters.
An array of record id values or a filter object.
A promise that resolves when the delete is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
await index.deleteMany(['record-1', 'record-2']);
// or
await index.deleteMany({ genre: 'classical' });
PineconeArgumentError when arguments passed to the method fail a runtime validation.
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
Delete a record from the index by id.
The id of the record to delete.
A promise that resolves when the delete is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
await index.deleteOne('record-1');
PineconeArgumentError when arguments passed to the method fail a runtime validation.
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
Return details of a specific import operation.
The id of the import operation to describe.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-serverless-index');
console.log(await index.describeImport('import-id'));
// {
// id: '1',
// uri: 's3://dev-bulk-import-datasets-pub/10-records-dim-10',
// status: 'Completed',
// createdAt: 2024-09-17T16:59:57.973Z,
// finishedAt: 2024-09-17T17:00:12.809Z,
// percentComplete: 100,
// recordsImported: 20,
// error: undefined
// }
Describes the index's statistics such as total number of records, records per namespace, and the index's dimension size.
A promise that resolves with the IndexStatsDescription value when the operation is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
await index.describeIndexStats();
// {
// namespaces: {
// '': { recordCount: 10 }
// foo: { recordCount: 2000 },
// bar: { recordCount: 2000 }
// },
// dimension: 1536,
// indexFullness: 0,
// totalRecordCount: 4010
// }
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
Fetch records from the index.
The FetchOptions for the operation.
A promise that resolves with the FetchResponse when the fetch is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
await index.fetch(['record-1', 'record-2']);
PineconeArgumentError when arguments passed to the method fail a runtime validation.
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
List all recent and ongoing import operations.
Optional
limit: number(Optional) Max number of import operations to return per page.
Optional
paginationToken: string(Optional) Pagination token to continue a previous listing operation.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-serverless-index');
console.log(await index.listImports());
// {
// data: [
// {
// id: '1',
// uri: 's3://dev-bulk-import-datasets-pub/10-records-dim-10',
// status: 'Completed',
// createdAt: 2024-09-17T16:59:57.973Z,
// finishedAt: 2024-09-17T17:00:12.809Z,
// percentComplete: 100,
// recordsImported: 20,
// error: undefined
// }
// ],
// pagination: undefined // Example is only 1 item, so no pag. token given.
// }
The listPaginated
operation finds vectors based on an id prefix within a single namespace.
It returns matching ids in a paginated form, with a pagination token to fetch the next page of results.
This id list can then be passed to fetch or delete options to perform operations on the matching records.
See Get record IDs for guidance and examples.
Optional
options: ListOptionsThe ListOptions for the operation.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index').namespace('my-namespace');
const results = await index.listPaginated({ prefix: 'doc1#' });
console.log(results);
// {
// vectors: [
// { id: 'doc1#01' }, { id: 'doc1#02' }, { id: 'doc1#03' },
// { id: 'doc1#04' }, { id: 'doc1#05' }, { id: 'doc1#06' },
// { id: 'doc1#07' }, { id: 'doc1#08' }, { id: 'doc1#09' },
// ...
// ],
// pagination: {
// next: 'eyJza2lwX3Bhc3QiOiJwcmVUZXN0LS04MCIsInByZWZpeCI6InByZVRlc3QifQ=='
// },
// namespace: 'my-namespace',
// usage: { readUnits: 1 }
// }
// Fetch the next page of results
await index.listPaginated({ prefix: 'doc1#', paginationToken: results.pagination.next});
⚠️ Note:
listPaginated
is supported only for serverless indexes.
PineconeConnectionError when invalid environment, project id, or index name is configured.
PineconeArgumentError when invalid arguments are passed.
Returns an Index targeting the specified namespace. By default, all operations take place inside the default namespace ''
.
The namespace to target within the index. All operations performed with the returned client instance will be scoped only to the targeted namespace.
An Index object that can be used to perform data operations scoped to the specified namespace.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
// Create an Index client instance scoped to operate on a
// single namespace
const ns = pc.index('my-index').namespace('my-namespace');
// Now operations against this intance only affect records in
// the targeted namespace
ns.upsert([
// ... records to upsert in namespace 'my-namespace'
])
ns.query({
// ... query records in namespace 'my-namespace'
})
This namespace()
method will inherit custom metadata types if you are chaining the call off an Index client instance that is typed with a user-specified metadata type. See index for more info.
Query records from the index. Query is used to find the topK
records in the index whose vector values are most
similar to the vector values of the query according to the distance metric you have configured for your index.
See Query data for more on querying.
The QueryOptions for the operation.
A promise that resolves with the QueryResponse when the query is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
await index.query({ topK: 3, id: 'record-1'});
// or
await index.query({ topK: 3, vector: [0.176, 0.345, 0.263] });
PineconeArgumentError when arguments passed to the method fail a runtime validation.
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
Start an asynchronous import of vectors from object storage into a Pinecone Serverless index.
(Required) The URI prefix under which the data to import is available. All data within this prefix
will be listed then imported into the target index. Currently only s3://
URIs are supported.
Optional
errorMode: string(Optional) Defaults to "Continue". If set to "Continue", the import operation will continue even if some records fail to import. To inspect failures in "Continue" mode, send a request to listImports. Pass "Abort" to stop the import operation if any records fail to import.
Optional
integration: string(Optional) The name of the storage integration that should be used to access the data. Defaults to None.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-serverless-index');
console.log(await index.startImport('s3://my-bucket/my-data'));
// {"id":"1"}
Update a record in the index by id.
The UpdateOptions for the operation.
A promise that resolves when the update is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('imdb-movies');
await index.update({
id: '18593',
metadata: { genre: 'romance' },
});
PineconeArgumentError when arguments passed to the method fail a runtime validation.
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
Upsert records to the index.
An array of PineconeRecord objects to upsert.
A promise that resolves when the upsert is completed.
import { Pinecone } from '@pinecone-database/pinecone';
const pc = new Pinecone();
const index = pc.index('my-index');
await index.upsert([{
id: 'record-1',
values: [0.176, 0.345, 0.263],
},{
id: 'record-2',
values: [0.176, 0.345, 0.263],
}])
PineconeArgumentError when arguments passed to the method fail a runtime validation.
PineconeConnectionError when network problems or an outage of Pinecone's APIs prevent the request from being completed.
The
Index
class is used to perform data operations (upsert, query, etc) against Pinecone indexes. Typically, it will be instantiated via aPinecone
client instance that has already built the required configuration from a combination of sources.Targeting an index, with user-defined Metadata types
If you are storing metadata alongside your vector values inside your Pinecone records, you can pass a type parameter to
index()
in order to get proper TypeScript typechecking when upserting and querying data.