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');
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.
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.
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.
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.