diff --git a/qdrant-landing/content/documentation/concepts/collections.md b/qdrant-landing/content/documentation/concepts/collections.md index d4c5cb4c3..1737acbca 100644 --- a/qdrant-landing/content/documentation/concepts/collections.md +++ b/qdrant-landing/content/documentation/concepts/collections.md @@ -59,21 +59,6 @@ will enable the use of [memmaps](/documentation/concepts/storage/#configuring-memmap-storage), which is suitable for ingesting a large amount of data. -### Create collection from another collection - -*Available as of v1.0.0* - -It is possible to initialize a collection from another existing collection. - -This might be useful for experimenting quickly with different configurations for the same data set. - - - -Make sure the vectors have the same `size` and `distance` function when setting up the vectors configuration in the new collection. If you used the previous sample -code, `"size": 300` and `"distance": "Cosine"`. - - -{{< code-snippet path="/documentation/headless/snippets/create-collection/init-from/" >}} ### Collection with multiple vectors @@ -143,17 +128,33 @@ The distance function for sparse vectors is always `Dot` and does not need to be However, there are optional parameters to tune the underlying [sparse vector index](/documentation/concepts/indexing/#sparse-vector-index). -### Check collection existence +### Create collection from another collection + +To create a collection from another collection, use the [Migration Tool](https://github.com/qdrant/migration/). You can use it to either copy a collection within the same Qdrant instance or to copy a collection to another instance. + +For example, to copy a collection from a local instance to a Qdrant Cloud instance, run the following command: + +```bash +docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration qdrant \ + --source.url 'http://localhost:6334' \ + --source.collection 'source-collection' \ + --target.url 'https://example.cloud-region.cloud-provider.cloud.qdrant.io:6334' \ + --target.api-key 'qdrant-key' \ + --target.collection 'target-collection' \ + --migration.batch-size 64 +``` + +## Check collection existence *Available as of v1.8.0* {{< code-snippet path="/documentation/headless/snippets/check-collection-exists/simple/" >}} -### Delete collection +## Delete collection {{< code-snippet path="/documentation/headless/snippets/delete-collection/simple/" >}} -### Update collection parameters +## Update collection parameters Dynamic parameter updates may be helpful, for example, for more efficient initial loading of vectors. For example, you can disable indexing during the upload process, and enable it immediately after the upload is finished. diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/_description.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/_description.md deleted file mode 100644 index 3d9be5d7f..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/_description.md +++ /dev/null @@ -1 +0,0 @@ -Description: This code snippet demonstrates creating a new collection by initializing it from an existing collection. The new collection will inherit the vector settings, such as size and distance function, from the source collection specified in the `init_from` field. It is a convenient feature for testing different configurations quickly. However, caution is advised as using `init_from` may lead to unpredictable load on the cluster, especially in performance-sensitive environments. Make sure that the vectors in both collections have matching settings for size and distance function. \ No newline at end of file diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/bash.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/bash.md deleted file mode 100644 index ab5c9896a..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/bash.md +++ /dev/null @@ -1,13 +0,0 @@ -```bash -curl -X PUT http://localhost:6333/collections/{collection_name} \ - -H 'Content-Type: application/json' \ - --data-raw '{ - "vectors": { - "size": 300, - "distance": "Cosine" - }, - "init_from": { - "collection": {from_collection_name} - } - }' -``` diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/csharp.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/csharp.md deleted file mode 100644 index f9980fa15..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/csharp.md +++ /dev/null @@ -1,12 +0,0 @@ -```csharp -using Qdrant.Client; -using Qdrant.Client.Grpc; - -var client = new QdrantClient("localhost", 6334); - -await client.CreateCollectionAsync( - collectionName: "{collection_name}", - vectorsConfig: new VectorParams { Size = 100, Distance = Distance.Cosine }, - initFromCollection: "{from_collection_name}" -); -``` diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/go.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/go.md deleted file mode 100644 index e9cff8d89..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/go.md +++ /dev/null @@ -1,21 +0,0 @@ -```go -import ( - "context" - - "github.com/qdrant/go-client/qdrant" -) - -client, err := qdrant.NewClient(&qdrant.Config{ - Host: "localhost", - Port: 6334, -}) - -client.CreateCollection(context.Background(), &qdrant.CreateCollection{ - CollectionName: "{collection_name}", - VectorsConfig: qdrant.NewVectorsConfig(&qdrant.VectorParams{ - Size: 100, - Distance: qdrant.Distance_Cosine, - }), - InitFromCollection: qdrant.PtrOf("{from_collection_name}"), -}) -``` diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/http.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/http.md deleted file mode 100644 index 1a8e259e9..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/http.md +++ /dev/null @@ -1,12 +0,0 @@ -```http -PUT /collections/{collection_name} -{ - "vectors": { - "size": 100, - "distance": "Cosine" - }, - "init_from": { - "collection": "{from_collection_name}" - } -} -``` diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/java.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/java.md deleted file mode 100644 index 91f030c2f..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/java.md +++ /dev/null @@ -1,26 +0,0 @@ -```java -import io.qdrant.client.QdrantClient; -import io.qdrant.client.QdrantGrpcClient; -import io.qdrant.client.grpc.Collections.CreateCollection; -import io.qdrant.client.grpc.Collections.Distance; -import io.qdrant.client.grpc.Collections.VectorParams; -import io.qdrant.client.grpc.Collections.VectorsConfig; - -QdrantClient client = - new QdrantClient(QdrantGrpcClient.newBuilder("localhost", 6334, false).build()); - -client - .createCollectionAsync( - CreateCollection.newBuilder() - .setCollectionName("{collection_name}") - .setVectorsConfig( - VectorsConfig.newBuilder() - .setParams( - VectorParams.newBuilder() - .setSize(100) - .setDistance(Distance.Cosine) - .build())) - .setInitFromCollection("{from_collection_name}") - .build()) - .get(); -``` diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/python.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/python.md deleted file mode 100644 index f1c485645..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/python.md +++ /dev/null @@ -1,11 +0,0 @@ -```python -from qdrant_client import QdrantClient, models - -client = QdrantClient(url="http://localhost:6333") - -client.create_collection( - collection_name="{collection_name}", - vectors_config=models.VectorParams(size=100, distance=models.Distance.COSINE), - init_from=models.InitFrom(collection="{from_collection_name}"), -) -``` diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/rust.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/rust.md deleted file mode 100644 index a60d2fb9b..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/rust.md +++ /dev/null @@ -1,14 +0,0 @@ -```rust -use qdrant_client::Qdrant; -use qdrant_client::qdrant::{CreateCollectionBuilder, Distance, VectorParamsBuilder}; - -let client = Qdrant::from_url("http://localhost:6334").build()?; - -client - .create_collection( - CreateCollectionBuilder::new("{collection_name}") - .vectors_config(VectorParamsBuilder::new(100, Distance::Cosine)) - .init_from_collection("{from_collection_name}"), - ) - .await?; -``` diff --git a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/typescript.md b/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/typescript.md deleted file mode 100644 index ad8c99448..000000000 --- a/qdrant-landing/content/documentation/headless/snippets/create-collection/init-from/typescript.md +++ /dev/null @@ -1,10 +0,0 @@ -```typescript -import { QdrantClient } from "@qdrant/js-client-rest"; - -const client = new QdrantClient({ host: "localhost", port: 6333 }); - -client.createCollection("{collection_name}", { - vectors: { size: 100, distance: "Cosine" }, - init_from: { collection: "{from_collection_name}" }, -}); -```