milvus-logo
LFAI
Casa
  • Guida per l'utente

Creare immediatamente una collezione

È possibile creare istantaneamente una collezione impostandone il nome e la dimensione del campo vettoriale. Milvus indicizza automaticamente il campo vettoriale e carica la collezione al momento della creazione. Questa pagina mostra come creare una collezione istantanea con le impostazioni predefinite.

Panoramica

Una collezione è una tabella bidimensionale con colonne fisse e righe variabili. Ogni colonna rappresenta un campo e ogni riga rappresenta un'entità. Per implementare questa gestione strutturale dei dati è necessario uno schema. Ogni entità da inserire deve soddisfare i vincoli definiti nello schema.

Le applicazioni AIGC di solito utilizzano database vettoriali come base di conoscenza per gestire i dati generati durante l'interazione tra gli utenti e i Large Language Models (LLM). Tali basi di conoscenza sono pressoché simili. Per accelerare l'uso dei cluster Milvus in questi scenari, è disponibile un metodo istantaneo per creare una raccolta con solo due parametri, ovvero il nome della raccolta e la dimensionalità del campo vettoriale.

Quando si crea una collezione istantanea con le impostazioni predefinite, si applicano le seguenti impostazioni.

  • I campi primari e vettoriali vengono aggiunti allo schema(id e vettore).

  • Il campo primario accetta numeri interi e disattiva l'AutoId.

  • Il campo vettore accetta incorporazioni vettoriali fluttuanti.

  • AUTOINDEX viene utilizzato per creare un indice sul campo vettore.

  • COSINE è usato per misurare le somiglianze tra le incorporazioni vettoriali.

  • Il campo dinamico delle riserve, denominato $meta, è abilitato per salvare campi non definiti da schemi e i loro valori in coppie chiave-valore.

  • La collezione viene caricata automaticamente al momento della creazione.

Per i dettagli sulle terminologie di cui sopra, fare riferimento a Raccolta spiegata.

È bene notare che la creazione immediata di una raccolta con le impostazioni predefinite non è adatta a tutti gli scenari. Si consiglia di familiarizzare con la procedura di creazione di una collezione comune, in modo da comprendere meglio le capacità di Milvus.

Impostazione rapida

In questo modo, è possibile creare immediatamente una collezione con il solo nome della collezione e la dimensione del campo vettoriale.

from pymilvus import MilvusClient, DataType

CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"

# 1. Set up a Milvus client
client = MilvusClient(
    uri=CLUSTER_ENDPOINT,
    token=TOKEN 
)

# 2. Create a collection in quick setup mode
client.create_collection(
    collection_name="quick_setup",
    dimension=5
)

res = client.get_load_state(
    collection_name="quick_setup"
)

print(res)

# Output
#
# {
#     "state": "<LoadState: Loaded>"
# }

import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;

String CLUSTER_ENDPOINT = "http://localhost:19530";
String TOKEN = "root:Milvus";

// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
        .uri(CLUSTER_ENDPOINT)
        .token(TOKEN)
        .build();

MilvusClientV2 client = new MilvusClientV2(connectConfig);

// 2. Create a collection in quick setup mode
CreateCollectionReq quickSetupReq = CreateCollectionReq.builder()
        .collectionName("quick_setup")
        .dimension(5)
        .build();

client.createCollection(quickSetupReq);

GetLoadStateReq quickSetupLoadStateReq = GetLoadStateReq.builder()
        .collectionName("quick_setup")
        .build();

Boolean res = client.getLoadState(quickSetupLoadStateReq);
System.out.println(res);

// Output:
// true

// 1. Set up a Milvus Client
import { MilvusClient, DataType } from "@zilliz/milvus2-sdk-node";

const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});

// 2. Create a collection in quick setup mode
let res = await client.createCollection({
    collection_name: "quick_setup",
    dimension: 5,
});  

console.log(res.error_code)

// Output
// 
// Success
// 

res = await client.getLoadState({
    collection_name: "quick_setup"
})

console.log(res.state)

// Output
// 
// LoadStateLoaded
// 

// Go 缺失

export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "collectionName": "quick_setup",
    "dimension": 5
}'

# {
#     "code": 0,
#     "data": {}
# }

Impostazione rapida con campi personalizzati

Se il tipo di metrica, i nomi dei campi e i tipi di dati predefiniti non soddisfano le vostre esigenze, potete regolare queste impostazioni come segue.

from pymilvus import MilvusClient, DataType

CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"

# 1. Set up a Milvus client
client = MilvusClient(
    uri=CLUSTER_ENDPOINT,
    token=TOKEN 
)

# 2. Create a collection in quick setup mode
client.create_collection(
    collection_name="custom_quick_setup",
    dimension=5,
    primary_field_name="my_id",
    id_type="string",
    vector_field_name="my_vector",
    metric_type="L2",
    auto_id=True,
    max_length=512
)

res = client.get_load_state(
    collection_name="custom_quick_setup"
)

print(res)

# Output
#
# {
#     "state": "<LoadState: Loaded>"
# }

import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;

String CLUSTER_ENDPOINT = "http://localhost:19530";
String TOKEN = "root:Milvus";

// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
        .uri(CLUSTER_ENDPOINT)
        .token(TOKEN)
        .build();

MilvusClientV2 client = new MilvusClientV2(connectConfig);

// 2. Create a collection in quick setup mode
CreateCollectionReq customQuickSetupReq = CreateCollectionReq.builder()
        .collectionName("custom_quick_setup")
        .dimension(5)
        .primaryFieldName("my_id")
        .idType(DataType.VarChar)
        .maxLength(512)
        .vectorFieldName("my_vector")
        .metricType("L2")
        .autoID(true)
        .build();

client.createCollection(customQuickSetupReq);

GetLoadStateReq customQuickSetupLoadStateReq = GetLoadStateReq.builder()
        .collectionName("custom_quick_setup")
        .build();

Boolean res = client.getLoadState(customQuickSetupLoadStateReq);
System.out.println(res);

// Output:
// true

// 1. Set up a Milvus Client
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});

// 2. Create a collection in quick setup mode
let res = await client.createCollection({
    collection_name: "custom_quick_setup",
    dimension: 5,
    primary_field_name: "my_id",
    id_type: "Varchar",
    max_length: 512,
    vector_field_name: "my_vector",
    metric_type: "L2",
    auto_id: true
});  

console.log(res.error_code)

// Output
// 
// Success
// 

res = await client.getLoadState({
    collection_name: "custom_quick_setup"
})

console.log(res.state)

// Output
// 
// LoadStateLoaded
// 

// Go 缺失

export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "collectionName": "custom_quick_setup",
    "dimension": 5,
    "primaryFieldName": "my_id",
    "idType": "VarChar",
    "vectorFieldName": "my_vector",
    "metricType": "L2",
    "autoId": true,
    "params": {
        "max_length": "512"
    }
}'

Se le raccolte create con le due modalità precedenti non soddisfano ancora le vostre esigenze, potete seguire la procedura descritta in Crea raccolta.

Tradotto daDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?