Skip to content
API Reference Zilliz Cloud Milvus Attu

Partition Management

Partitions allow you to organize data within a collection for better performance and management. This guide covers all partition operations.

Create a new partition:

await client.createPartition({
collection_name: 'my_collection',
partition_name: 'partition_1',
});

Check if a partition exists:

const exists = await client.hasPartition({
collection_name: 'my_collection',
partition_name: 'partition_1',
});
console.log('Partition exists:', exists.value);

List all partitions in a collection:

const result = await client.listPartitions({
collection_name: 'my_collection',
});
console.log('Partitions:', result.partition_names);
// Output: ['_default', 'partition_1', 'partition_2']

Get statistics for a partition:

const stats = await client.getPartitionStatistics({
collection_name: 'my_collection',
partition_name: 'partition_1',
});
console.log('Row count:', stats.row_count);
console.log('Statistics:', stats.stats);

Load partitions into memory:

// Asynchronous load
await client.loadPartitions({
collection_name: 'my_collection',
partition_names: ['partition_1', 'partition_2'],
});
// Synchronous load (waits until loaded)
await client.loadPartitionsSync({
collection_name: 'my_collection',
partition_names: ['partition_1', 'partition_2'],
});

Release partitions from memory:

await client.releasePartitions({
collection_name: 'my_collection',
partition_names: ['partition_1', 'partition_2'],
});

Drop a partition (this permanently deletes all data in the partition):

await client.dropPartition({
collection_name: 'my_collection',
partition_name: 'partition_1',
});

Insert data into a specific partition:

await client.insert({
collection_name: 'my_collection',
partition_name: 'partition_1',
data: [
{
vector: [/* ... */],
text: 'data for partition 1',
},
],
});

Query data from specific partitions:

const results = await client.query({
collection_name: 'my_collection',
expr: 'id > 100',
partition_names: ['partition_1'],
output_fields: ['vector', 'text'],
});

Search within specific partitions:

const results = await client.search({
collection_name: 'my_collection',
data: [/* vector */],
partition_names: ['partition_1', 'partition_2'],
limit: 10,
});

Every collection has a default partition named _default. Data inserted without specifying a partition goes to the default partition:

// Data goes to _default partition
await client.insert({
collection_name: 'my_collection',
data: [/* ... */],
});
// Explicitly specify partition
await client.insert({
collection_name: 'my_collection',
partition_name: 'partition_1',
data: [/* ... */],
});
  1. Use partitions for data organization: Organize data by time, category, or region
  2. Load only needed partitions: Load only the partitions you need to query
  3. Partition naming: Use descriptive names that reflect the partition’s purpose
  4. Default partition: Use the default partition for general data
  5. Partition size: Keep partitions at reasonable sizes for optimal performance