Namespaces act as query boundaries in Mixpeek. They provide isolation between different environments, projects, or clients, ensuring that queries and operations are contained within their intended scope.

Overview

They serve as the highest-level organizational unit, similar to databases in traditional systems. Each namespace maintains its own:

  • Buckets and Objects
  • Collections and Documents
  • Feature Stores
  • Retrievers and Pipelines
  • Taxonomies and Clusters
1

Select Features

Choose which feature extractors and vector indexes you want to use in your namespace. This determines what capabilities will be available for processing your data.

2

Select Payload Index

Define which fields you want to index for efficient querying. Well-chosen payload indexes optimize search performance for your most common query patterns.

3

Create Namespace

Set up your namespace with the selected configurations. Once created, your namespace serves as an isolated environment for all your data processing and retrieval operations.

When you create a namespace, you select the features you want to make available across the namespace. This is important to select up-front because the features map to index definitions and are immutable. The features you select here limit the feature extractors you have available when you create collections.

Payload indexes are however mutable, they can be modified whenever. Payload indexes are important to specify in order to ensure your queries remain performant as the contents of your namespace scales.

Usage

# Create a namespace
namespace = mp.namespaces.create(
    name="quickstart",
    description="My first Mixpeek project",
    feature_extractors: [
    {
      "feature_extractor_name": "text-extractor",
    }
  ]
)
namespace_id = namespace["namespace_id"]

Common Use Cases

Environment Separation

Isolate development, staging, and production environments

Client Isolation

Separate resources for different clients or projects

Data Segregation

Keep different data domains separate (e.g., marketing vs. product content)

Access Control

Manage permissions and access at a high level

Best Practices

Namespace Organization

  • Use clear, consistent naming conventions
  • Create separate namespaces for different environments
  • Consider data isolation requirements when planning namespace structure
  • Document namespace purpose and contents

Resource Management

  • Regularly audit namespace contents
  • Clean up unused resources within namespaces
  • Monitor namespace usage and quotas
  • Implement proper access controls

Index Mutability

Vector indexes are immutable configurations that define how feature vectors (like embeddings) are stored and searched within your namespace. They are:

  • Set during namespace creation
  • Cannot be modified after namespace creation
  • Determine which feature extractors are available
  • Optimize vector similarity search performance

Limitations

  • Maximum Namespace Count: Maximum number of namespaces per account: 100
  • Namespace Uniqueness: Namespace names must be unique within your account
  • Naming Constraints: Namespace names can only contain lowercase letters, numbers, and hyphens
  • Resource Isolation: Resources cannot be moved between namespaces
  • Query Boundaries: Cross-namespace queries are not supported