diff --git a/docs-site/content/0.25.0/api/collections.md b/docs-site/content/0.25.0/api/collections.md
index 6d226c02..cbf0297c 100644
--- a/docs-site/content/0.25.0/api/collections.md
+++ b/docs-site/content/0.25.0/api/collections.md
@@ -1030,9 +1030,15 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Using an alias
-If you need to do zero-downtime schema changes, you could also re-create the collection fully and use
+If you need to do zero-downtime schema changes, you could also re-create the collection fully and use
the [Collection Alias](./collection-alias.md) feature to do a zero-downtime switch over to the new collection:
1. [Create your collection](#create-a-collection) as usual with a timestamped name. For eg: `movies_jan_1`
diff --git a/docs-site/content/0.25.0/api/vector-search.md b/docs-site/content/0.25.0/api/vector-search.md
index 733a0ef2..8885184c 100644
--- a/docs-site/content/0.25.0/api/vector-search.md
+++ b/docs-site/content/0.25.0/api/vector-search.md
@@ -350,9 +350,25 @@ To simplify the process of embedding generation, Typesense can automatically use
When you do a search query on this automatically-generated vector field, your search query will be vectorized using the same model used for the field, which then allows you to do semantic search or combine keyword and semantic search to do hybrid search.
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
-To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
+To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
Here's an example:
diff --git a/docs-site/content/0.25.1/api/collections.md b/docs-site/content/0.25.1/api/collections.md
index 3f576f87..5c89e9ca 100644
--- a/docs-site/content/0.25.1/api/collections.md
+++ b/docs-site/content/0.25.1/api/collections.md
@@ -1084,9 +1084,15 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Using an alias
-If you need to do zero-downtime schema changes, you could also re-create the collection fully and use
+If you need to do zero-downtime schema changes, you could also re-create the collection fully and use
the [Collection Alias](./collection-alias.md) feature to do a zero-downtime switch over to the new collection:
1. [Create your collection](#create-a-collection) as usual with a timestamped name. For eg: `movies_jan_1`
diff --git a/docs-site/content/0.25.1/api/vector-search.md b/docs-site/content/0.25.1/api/vector-search.md
index ad76ad86..4581e381 100644
--- a/docs-site/content/0.25.1/api/vector-search.md
+++ b/docs-site/content/0.25.1/api/vector-search.md
@@ -350,9 +350,25 @@ To simplify the process of embedding generation, Typesense can automatically use
When you do a search query on this automatically-generated vector field, your search query will be vectorized using the same model used for the field, which then allows you to do semantic search or combine keyword and semantic search to do hybrid search.
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
-To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
+To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
Here's an example:
diff --git a/docs-site/content/0.25.2/api/collections.md b/docs-site/content/0.25.2/api/collections.md
index 616daefc..c4603466 100644
--- a/docs-site/content/0.25.2/api/collections.md
+++ b/docs-site/content/0.25.2/api/collections.md
@@ -1090,9 +1090,15 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Using an alias
-If you need to do zero-downtime schema changes, you could also re-create the collection fully and use
+If you need to do zero-downtime schema changes, you could also re-create the collection fully and use
the [Collection Alias](./collection-alias.md) feature to do a zero-downtime switch over to the new collection:
1. [Create your collection](#create-a-collection) as usual with a timestamped name. For eg: `movies_jan_1`
diff --git a/docs-site/content/0.25.2/api/vector-search.md b/docs-site/content/0.25.2/api/vector-search.md
index dee0426f..4a71059f 100644
--- a/docs-site/content/0.25.2/api/vector-search.md
+++ b/docs-site/content/0.25.2/api/vector-search.md
@@ -350,9 +350,25 @@ To simplify the process of embedding generation, Typesense can automatically use
When you do a search query on this automatically-generated vector field, your search query will be vectorized using the same model used for the field, which then allows you to do semantic search or combine keyword and semantic search to do hybrid search.
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
-To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
+To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
Here's an example:
diff --git a/docs-site/content/26.0/api/collections.md b/docs-site/content/26.0/api/collections.md
index 5f42afb5..81a3512b 100644
--- a/docs-site/content/26.0/api/collections.md
+++ b/docs-site/content/26.0/api/collections.md
@@ -1156,9 +1156,15 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Using an alias
-If you need to do zero-downtime schema changes, you could also re-create the collection fully with the updated schema and use
+If you need to do zero-downtime schema changes, you could also re-create the collection fully with the updated schema and use
the [Collection Alias](./collection-alias.md) feature to do a zero-downtime switch over to the new collection:
Let's say you have a collection called `movies_jan_1` that you want to change the schema for.
diff --git a/docs-site/content/26.0/api/vector-search.md b/docs-site/content/26.0/api/vector-search.md
index 230ff462..b2198d0f 100644
--- a/docs-site/content/26.0/api/vector-search.md
+++ b/docs-site/content/26.0/api/vector-search.md
@@ -350,9 +350,25 @@ To simplify the process of embedding generation, Typesense can automatically use
When you do a search query on this automatically-generated vector field, your search query will be vectorized using the same model used for the field, which then allows you to do semantic search or combine keyword and semantic search to do hybrid search.
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
-To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
+To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
Here's an example:
diff --git a/docs-site/content/27.0/api/collections.md b/docs-site/content/27.0/api/collections.md
index be35332b..57eb636a 100644
--- a/docs-site/content/27.0/api/collections.md
+++ b/docs-site/content/27.0/api/collections.md
@@ -1225,6 +1225,12 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Using an alias
If you need to do zero-downtime schema changes, you could also re-create the collection fully with the updated schema and use
diff --git a/docs-site/content/27.0/api/vector-search.md b/docs-site/content/27.0/api/vector-search.md
index ad20fa0e..d66187ee 100644
--- a/docs-site/content/27.0/api/vector-search.md
+++ b/docs-site/content/27.0/api/vector-search.md
@@ -350,9 +350,25 @@ To simplify the process of embedding generation, Typesense can automatically use
When you do a search query on this automatically-generated vector field, your search query will be vectorized using the same model used for the field, which then allows you to do semantic search or combine keyword and semantic search to do hybrid search.
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
-To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
+To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
Here's an example:
diff --git a/docs-site/content/27.1/api/collections.md b/docs-site/content/27.1/api/collections.md
index 19d35555..4469bbe9 100644
--- a/docs-site/content/27.1/api/collections.md
+++ b/docs-site/content/27.1/api/collections.md
@@ -1225,6 +1225,12 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Using an alias
If you need to do zero-downtime schema changes, you could also re-create the collection fully with the updated schema and use
diff --git a/docs-site/content/27.1/api/vector-search.md b/docs-site/content/27.1/api/vector-search.md
index 119e3012..c563d5e6 100644
--- a/docs-site/content/27.1/api/vector-search.md
+++ b/docs-site/content/27.1/api/vector-search.md
@@ -395,6 +395,22 @@ To simplify the process of embedding generation, Typesense can automatically use
When you do a search query on this automatically-generated vector field, your search query will be vectorized using the same model used for the field, which then allows you to do semantic search or combine keyword and semantic search to do hybrid search.
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
diff --git a/docs-site/content/28.0/api/collections.md b/docs-site/content/28.0/api/collections.md
index 92d7c2eb..73f1c5c9 100644
--- a/docs-site/content/28.0/api/collections.md
+++ b/docs-site/content/28.0/api/collections.md
@@ -1313,6 +1313,12 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Get Schema Change Status
You can check the status of in-progress schema change operations by using the schema changes endpoint.
diff --git a/docs-site/content/28.0/api/vector-search.md b/docs-site/content/28.0/api/vector-search.md
index 0cd6e207..cbb5b7b9 100644
--- a/docs-site/content/28.0/api/vector-search.md
+++ b/docs-site/content/28.0/api/vector-search.md
@@ -399,6 +399,22 @@ When you do a search query on this automatically-generated vector field, your se
Embeddings are only regenerated when one or more fields specified in the `embed.from` configuration are updated. This helps avoid unnecessary embedding recreation and API calls when other fields in the document are modified.
:::
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
diff --git a/docs-site/content/29.0/api/collections.md b/docs-site/content/29.0/api/collections.md
index 92d7c2eb..73f1c5c9 100644
--- a/docs-site/content/29.0/api/collections.md
+++ b/docs-site/content/29.0/api/collections.md
@@ -1313,6 +1313,12 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Get Schema Change Status
You can check the status of in-progress schema change operations by using the schema changes endpoint.
diff --git a/docs-site/content/29.0/api/vector-search.md b/docs-site/content/29.0/api/vector-search.md
index b3da4b76..c6a65997 100644
--- a/docs-site/content/29.0/api/vector-search.md
+++ b/docs-site/content/29.0/api/vector-search.md
@@ -399,6 +399,22 @@ When you do a search query on this automatically-generated vector field, your se
Embeddings are only regenerated when one or more fields specified in the `embed.from` configuration are updated. This helps avoid unnecessary embedding recreation and API calls when other fields in the document are modified.
:::
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
diff --git a/docs-site/content/30.0/api/collections.md b/docs-site/content/30.0/api/collections.md
index 368436a7..eaaa750a 100644
--- a/docs-site/content/30.0/api/collections.md
+++ b/docs-site/content/30.0/api/collections.md
@@ -1327,6 +1327,12 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Get Schema Change Status
You can check the status of in-progress schema change operations by using the schema changes endpoint.
diff --git a/docs-site/content/30.0/api/vector-search.md b/docs-site/content/30.0/api/vector-search.md
index eaf8dc9c..a7aa0b14 100644
--- a/docs-site/content/30.0/api/vector-search.md
+++ b/docs-site/content/30.0/api/vector-search.md
@@ -399,6 +399,22 @@ When you do a search query on this automatically-generated vector field, your se
Embeddings are only regenerated when one or more fields specified in the `embed.from` configuration are updated. This helps avoid unnecessary embedding recreation and API calls when other fields in the document are modified.
:::
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
diff --git a/docs-site/content/30.1/api/collections.md b/docs-site/content/30.1/api/collections.md
index ce3033cf..61ce312f 100644
--- a/docs-site/content/30.1/api/collections.md
+++ b/docs-site/content/30.1/api/collections.md
@@ -1327,6 +1327,12 @@ curl "http://localhost:8108/collections/companies" \
}'
```
+:::danger Adding Embedding Fields
+If you use this alter operation to add an [auto-embedding field](./vector-search.html#option-b-auto-embedding-generation-within-typesense), Typesense will generate embeddings for **all existing documents** in the collection. This is highly CPU and RAM intensive and **can make your cluster nodes unresponsive**.
+
+For production clusters, we strongly recommend creating a new collection with the embedding field in the schema and indexing documents in controlled batches, rather than altering an existing collection. See the [alias feature](#using-an-alias) for zero-downtime migration, and [GPU Acceleration](./vector-search.html#using-a-gpu-optional) to speed up embedding generation.
+:::
+
### Get Schema Change Status
You can check the status of in-progress schema change operations by using the schema changes endpoint.
diff --git a/docs-site/content/30.1/api/vector-search.md b/docs-site/content/30.1/api/vector-search.md
index 560d1d21..3b2d90d7 100644
--- a/docs-site/content/30.1/api/vector-search.md
+++ b/docs-site/content/30.1/api/vector-search.md
@@ -399,6 +399,22 @@ When you do a search query on this automatically-generated vector field, your se
Embeddings are only regenerated when one or more fields specified in the `embed.from` configuration are updated. This helps avoid unnecessary embedding recreation and API calls when other fields in the document are modified.
:::
+:::warning Adding Embeddings to Existing Collections
+When you add an auto-embedding field to an **existing collection** via [schema alter](./collections.html#update-or-alter-a-collection) (PATCH), Typesense will generate embeddings for **all existing documents at once**. This is computationally intensive and can cause:
+
+- **CPU spikes to 100%**, making nodes unresponsive to API calls
+- **High RAM usage**, as the cluster must have enough memory to hold all document embeddings
+- **Blocked writes** to the collection until the operation completes
+
+**Recommended approach for production clusters:**
+
+1. Create a **new collection** with the embedding field already in the schema
+2. Index documents into the new collection in a controlled manner (e.g., in batches)
+3. Use the [Collection Alias](./collections.html#using-an-alias) feature to switch traffic to the new collection with zero downtime
+
+If you must use schema alter, do so during off-peak hours on a cluster with sufficient CPU and RAM headroom. Enabling [GPU Acceleration](#using-a-gpu-optional) significantly speeds up embedding generation.
+:::
+
### Creating an auto-embedding field
To create a field that automatically embeds other string or string array fields, you need to set the `embed` property of the field.
diff --git a/docs-site/content/guide/semantic-search.md b/docs-site/content/guide/semantic-search.md
index d87c0b5c..79102c0f 100644
--- a/docs-site/content/guide/semantic-search.md
+++ b/docs-site/content/guide/semantic-search.md
@@ -599,7 +599,7 @@ You'll find the source code linked in the description.
Read the full API reference documentation about Vector Search here.
-:::warning Note: CPU Usage
+:::warning Note: CPU and RAM Usage
Built-in Machine Learning models are computationally intensive.
So depending on the size of your dataset, when you enable semantic search and use a built-in ML model, even a few thousand records could take 10s of minutes to generate embeddings and index.
@@ -607,4 +607,8 @@ So depending on the size of your dataset, when you enable semantic search and us
If you want to speed this process up, you want to enable GPU Acceleration in Typesense.
When you use a remote embedding service like OpenAI within Typesense, then you do not need a GPU, since the model runs on OpenAI's servers.
+
+**Adding embeddings to an existing collection via schema alter (PATCH) is particularly risky** — it will generate embeddings for all existing documents at once, which can spike CPU to 100% and make nodes unresponsive. Your cluster must also have enough RAM to hold all the generated embeddings.
+
+For production clusters, the safer approach is to create a **new collection** with the embedding field in the schema, index documents in controlled batches, and use a Collection Alias to switch traffic with zero downtime.
:::