Создание коллекции#

Предусловия#

  1. Сервер Platform V Vector DB (далее - Vector DB) запущен и доступен по указанному адресу.

  2. Установлен клиентский SDK или присутствует доступ к HTTP/REST API Qdrant.

  3. Определены параметры коллекции: размерность векторов (size), метрика расстояния (distance), тип данных (datatype, например uint8).

  4. Выбрана стратегия мультитенантности: использование одной коллекции для нескольких пользователей или создание отдельных коллекций.

  5. Для коллекции с несколькими векторами определены имена и параметры каждого вектора.

  6. При использовании init_from требуется наличие существующей коллекции с совместимыми настройками векторов.

Последовательность выполнения#

Создание базовой коллекции:

PUT /collections/{collection_name}
{
    "vectors": {
      "size": 300,
      "distance": "Cosine"
    }
}
curl -X PUT http://localhost:6333/collections/{collection_name} \
  -H 'Content-Type: application/json' \
  --data-raw '{
    "vectors": {
      "size": 300,
      "distance": "Cosine"
    } 
  }'
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),
)
import { QdrantClient } from "@qdrant/js-client-rest";

const client = new QdrantClient({ host: "localhost", port: 6333 });

client.createCollection("{collection_name}", {
  vectors: { size: 100, distance: "Cosine" },
});
use qdrant_client::Qdrant;
use qdrant_client::qdrant::{CreateCollectionBuilder, VectorParamsBuilder};

let client = Qdrant::from_url("http://localhost:6334").build()?;

client
    .create_collection(
        CreateCollectionBuilder::new("{collection_name}")
            .vectors_config(VectorParamsBuilder::new(100, Distance::Cosine)),
    )
    .await?;
import io.qdrant.client.grpc.Collections.Distance;
import io.qdrant.client.grpc.Collections.VectorParams;
import io.qdrant.client.QdrantClient;
import io.qdrant.client.QdrantGrpcClient;

QdrantClient client = new QdrantClient(
    QdrantGrpcClient.newBuilder("localhost", 6334, false).build());

client.createCollectionAsync("{collection_name}",
        VectorParams.newBuilder().setDistance(Distance.Cosine).setSize(100).build()).get();
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 }
);
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,
  }),
})

В дополнение к обязательным опциям можно указать пользовательские значения для параметров коллекции:

  • hnsw_config - подробнее в разделе Индексирование.

  • wal_config - конфигурация журнала упреждающей записи. Подробное описание WAL приведено в разделе Настройка хранилища документа Руководство администратора.

  • optimizers_config - подробнее в разделе Управление оптимизаторами.

  • shard_number - определяет какое количество шардов должна содержать коллекция.

  • on_disk_payload - задает место хранения данных полезной нагрузки. Если true - полезная нагрузка будет храниться только на диске. Это может пригодиться для ограничения использования оперативной памяти в случае большого объема полезной нагрузки.

  • quantization_config - подробнее в разделе Квантование.

  • strict_mode_config - подробное описание приведено в разделе Строгий режим документа Руководство администратора.

Значения по умолчанию для необязательных параметров коллекции определены в файле конфигурации (config.yaml).

Информация

Для получения дополнительной информации о параметрах коллекции и вектора рекомендуется ознакомиться с соответствующим методом и описанием конфигурационного файла в разделе Базовый конфигурационный файл документа Справочник конфигурационных файлов и параметров.

Все векторы хранятся в оперативной памяти для быстрого доступа. Параметр on_disk можно установить в векторной конфигурации. Если установлено значение true, все векторы будут постоянно находиться на диске. Это позволит использовать Memmaps, что подходит для обработки больших объемов данных. Подробное описание приведено в разделе Настройка хранилища документа Руководство администратора.

Результат#

Коллекция с указанным именем будет создана с конфигурацией:

  • Размер векторов: 100.

  • Метрика: Cosine.

  • По умолчанию будут использоваться стандартные параметры индексирования и оптимизации.