Partition Management
Partitions allow you to organize data within a collection for better performance and management. This guide covers all partition operations.
Creating Partitions
Create a new partition:
await client.createPartition({
collection_name: 'my_collection',
partition_name: 'partition_1',
});Checking Partition Existence
Check if a partition exists:
const exists = await client.hasPartition({
collection_name: 'my_collection',
partition_name: 'partition_1',
});
console.log('Partition exists:', exists.value);Listing Partitions
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']Partition Statistics
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);Partition Loading
Load Partitions
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
Release partitions from memory:
await client.releasePartitions({
collection_name: 'my_collection',
partition_names: ['partition_1', 'partition_2'],
});Dropping Partitions
Drop a partition (this permanently deletes all data in the partition):
await client.dropPartition({
collection_name: 'my_collection',
partition_name: 'partition_1',
});Working with Partitions
Inserting Data into Partitions
Insert data into a specific partition:
await client.insert({
collection_name: 'my_collection',
partition_name: 'partition_1',
data: [
{
vector: [/* ... */],
text: 'data for partition 1',
},
],
});Querying Partitions
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'],
});Searching Partitions
Search within specific partitions:
const results = await client.search({
collection_name: 'my_collection',
data: [/* vector */],
partition_names: ['partition_1', 'partition_2'],
limit: 10,
});Default Partition
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: [/* ... */],
});Partition Best Practices
- Use partitions for data organization: Organize data by time, category, or region
- Load only needed partitions: Load only the partitions you need to query
- Partition naming: Use descriptive names that reflect the partition’s purpose
- Default partition: Use the default partition for general data
- Partition size: Keep partitions at reasonable sizes for optimal performance
Next Steps
- Learn about Collection Management
- Explore Data Operations
- Check out Best Practices
Last updated on