IBM Cloud Docs
Lavorare con Milvus

Lavorare con Milvus

Creare una collezione in Milvus

In Milvus, le collezioni sono utilizzate per memorizzare e gestire le entità. Una collezione in Milvus è equivalente a una tabella in un sistema di gestione di database relazionali (RDBMS).

Per creare una raccolta in Milvus vedere Crea una raccolta.

Inserimento di dati in Milvus

Milvus supporta i valori predefiniti per i campi scalari, ad eccezione di quelli a chiave primaria. È possibile mantenere alcuni campi vuoti durante gli inserimenti di dati.

Per ulteriori informazioni, vedere Inserisci voci.

Si consiglia di inserire i dati in batch per i seguenti motivi:

  • Il numero di vettori che possono essere inseriti in una singola chiamata API GRPC è limitato dalla dimensione massima del messaggio consentita daKafka. In IBM Cloud, il limite massimo della dimensione del messaggio è limitato a 1 MB.

  • Il numero massimo di righe che è possibile inserire alla volta dipende dalla dimensione totale dei dati che si sta tentando di inserire. Il numero esatto diminuisce con l'aumento delle dimensioni del vettore e la presenza di campi non vettoriali nella riga.

Utilizzare l'API di inserimento di massa per inserire i dataset più grandi di 500.000 vettori. L'API di inserimento di massa viene eseguita meglio dell'API di inserimento batch quando si inseriscono dataset più grandi. L'uso di file.npy è il metodo consigliato per acquisire grandi set di dati. Se si utilizza l'API di inserimento batch, eliminare manualmente la raccolta ogni 500.000 righe. Per ulteriori informazioni, vedere API di inserimento in blocco.

Creare indici in Milvus

Creare un indice prima di effettuare la ricerca per approssimazione dei vicini (ANN) a Milvus.

IBM supporta ufficialmente i seguenti indici:

Gli indici che non sono elencati in questo elenco potrebbero funzionare, ma non sono convalidati da IBM.

Quando il numero di righe in un segmento è inferiore a 1024, Milvus non crea alcun indice per quel segmento. Al contrario, per le operazioni di interrogazione verrà utilizzato di default il motore di ricerca brute-force. Quando il numero di righe nel segmento supera questa soglia, Milvus inizia automaticamente a costruire gli indici.

  • HNSW
  • SCANN
  • Piatta
  • FLAT_IVF
  • PQ IVF

È possibile creare l'indice specificando il nome del campo vettore e i parametri dell'indice. Per ulteriori informazioni, vedere Campi vettoriali di indice.

Eseguire una ricerca di similarità vettoriale in Milvus

In Milvus è possibile effettuare una ricerca di similarità vettoriale dopo aver preparato i parametri per lo scenario di ricerca.

  • Per ulteriori informazioni sulla ricerca a vettore singolo e multi-vettore, vedere Ricerca di similarità vettoriali.
  • Per ulteriori informazioni sulla ricerca ibrida (multi-vettore), vedere Ricerca ibrida.
  • GroupBy Per ulteriori informazioni sulla ricerca Hybrid with GroupBy, consultare la sezione Enhancements (Miglioramenti) in Hybrid GroupBy search.

Esecuzione di una query basata sul filtraggio scalare in Milvus

In Milvus è possibile eseguire una query basata su un filtro scalare. Per ulteriori informazioni, vedere Ottieni e query scalare.

Puoi effettuare i seguenti tipi di ricerca:

  • Ricerca per intervallo: per trovare vettori entro un intervallo di distanza specifico dal vettore di query. Per ulteriori informazioni, vedere Ricerca della portata.
  • Ricerca di raggruppamento: per ottenere risultati in base a un campo specifico per garantire la diversità dei risultati. Per ulteriori informazioni, vedere Ricerca per raggruppamento.

Quando si esegue una query di ricerca con un filtro scalare su un dataset di grandi dimensioni, è importante regolare il parametro limite per gestire i risultati della query in modo efficace. Utilizzare il seguente approccio per impostare il file limit parametro:

hello_milvus.query(expr=query_condition, output_fields=["random", "embeddings"], limit=100,offset=0)

La somma dei valori di limit E offset i parametri devono essere compresi nell'intervallo di[ 1, 16384] .

Eliminazione di entità da Milvus utilizzando la chiave primaria

In Milvus, è possibile eliminare le entità utilizzando la chiave primaria. Preparare l'espressione booleana che filtra le entità da eliminare.

Per ulteriori informazioni, consultare Elimina entità.

Consegna di una collezione da parte di Milvus

L'abbandono di una collezione da parte di Milvus è irreversibile. Non è possibile recuperare i dati eliminati.

Aggiungete quanto segue al vostro script .ipynb o Python per rilasciare una raccolta...

from pymilvus import utility
utility.drop_collection(<collection name>)

Procedure consigliate

Di seguito sono riportate alcune best practice:

  • Se ci sono campi Varchar lunghi (più di 256 caratteri), mantenere i campi non vettoriali fuori da Milvus. Puoi conservarli in un bucket COS o in un bucket di archiviazione ed eseguire una ricerca referenziale.
  • Assicurati che ilPyMilvus la versione è2.4.0 o più tardi. Milvus 2.4.0 o versioni successive supportano la ricerca vettoriale rada, la ricerca ibrida ( sparse_dense ) e la ricerca multivettoriale.
  • Durante il caricamento delle raccolte utilizzando l'inserimento batch, seguire lo schema: inserire in un batch, rilasciare la memoria, quindi ripetere il processo.
  • Non importare in parallelo tutte le raccolte contemporaneamente. Acquisisci in sequenza e scarica tra un'acquisizione e l'altra.
  • La dimensione massima di ciascuna raccolta dovrebbe corrispondere al numero massimo di vettori supportati nella dimensione di una maglietta.
  • Se sono state caricate più collezioni o partizioni, assicurarsi che la somma dei vettori in tutte le entità caricate non superi il limite della dimensione della maglietta. È comunque possibile memorizzare più vettori rispetto al limite della dimensione della maglietta purché il numero di vettori caricati rientri nel limite.

Durante l'aggiornamento di Milvus, la risposta può subire un leggero ritardo di circa 20 secondi. Le ricerche in corso e le query di upsert potrebbero fallire. È possibile riprovare immediatamente le query.

Esempi di quaderni per Milvus

Con questi esempi di notebook potete provare le funzionalità di Milvus con tutorial passo passo. Per accedere ai quaderni campione, vedere Quaderni campione di Milvus.