> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mixpeek.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Taxonomies

<iframe width="600" height="310" src="https://d8ts56gtwtyh1.cloudfront.net/docs/warehouse/taxonomies.mp4" title="Taxonomies" frameborder="0" allow="accelerometer; autoplay; muted" allowfullscreen autoplay muted />

Taxonomies provide warehouse-native enrichment, the multimodal equivalent of a SQL JOIN.

### Create and apply taxonomies

* **Create**: Click New Taxonomy, choose flat or hierarchical, and define config. API parity: [Create Taxonomy](/api-reference/taxonomies/create-taxonomy).
* **Flat**: Join a source collection to a taxonomy collection via a retriever. Configure input mappings and enrichment fields.
* **Hierarchical**: Define nodes explicitly or infer via schema, clusters, or LLM. Per-node retrievers and input mappings are supported.
* **Execute on-demand**: Validate configs against sample documents. API: [Test Taxonomy](/api-reference/taxonomies/test-taxonomy-configuration-validation-only). Note this is for testing only; on-demand enrichment typically happens inside retrievers.
* **Materialize**: Attach to collections with `execution_mode` set to materialize so Engine enriches after ingestion. Manage under Collections → Taxonomy Applications. API: [Update Collection](/api-reference/collections/update-collection).
* **Versions**: Snapshot configurations and browse history. API: [Create Version](/api-reference/taxonomies/create-taxonomy-version), [List Versions](/api-reference/taxonomies/list-taxonomy-versions).
* **Manage**: Get, list, or delete taxonomies. API: [Get](/api-reference/taxonomies/get-taxonomy), [List](/api-reference/taxonomies/list-taxonomies), [Delete](/api-reference/taxonomies/delete-taxonomy).

### Tips

* Use on-demand for interactive retrieval flows and materialize for post-ingestion enrichment.
* Keep enrichment fields minimal to avoid payload bloat; prefer app-side joins when possible.

<Tabs>
  <Tab title="Flat">
    <Steps>
      <Step title="Create">Select retriever, input mappings, and source collection.</Step>
      <Step title="Validate">Use Execute for on-demand checks with sample docs.</Step>
      <Step title="Apply">Attach to a collection as on-demand or materialize.</Step>
    </Steps>
  </Tab>

  <Tab title="Hierarchical">
    <Steps>
      <Step title="Define or infer">Add nodes or choose schema/cluster/LLM inference.</Step>
      <Step title="Per-node options">Override retriever and input mappings as needed.</Step>
      <Step title="Version">Snapshot configs and track changes over time.</Step>
    </Steps>
  </Tab>
</Tabs>

<Callout type="info">
  Materialized enrichments are executed by the Engine post-ingestion—no separate API call is needed.
</Callout>
