Operatori ARRAY
Milvus offre potenti operatori per interrogare i campi degli array, consentendo di filtrare e recuperare le entità in base al contenuto degli array.
Tutti gli elementi di un array devono essere dello stesso tipo e le strutture annidate all'interno degli array sono trattate come stringhe semplici. Pertanto, quando si lavora con i campi ARRAY, è consigliabile evitare annidamenti troppo profondi e assicurarsi che le strutture di dati siano il più possibile piatte per ottenere prestazioni ottimali.
Operatori ARRAY disponibili
Gli operatori ARRAY consentono di interrogare con precisione i campi array in Milvus. Gli operatori sono.
ARRAY_CONTAINS(identifier, expr)
: verifica l'esistenza di un elemento specifico in un campo array.ARRAY_CONTAINS_ALL(identifier, expr)
: assicura che tutti gli elementi dell'elenco specificato siano presenti nel campo dell'array.ARRAY_CONTAINS_ANY(identifier, expr)
: verifica se uno qualsiasi degli elementi dell'elenco specificato è presente nel campo array.ARRAY_LENGTH(identifier, expr)
: consente di filtrare le entità in base al numero di elementi di un campo array.
ARRAY_CONTAINS
L'operatore ARRAY_CONTAINS
controlla se un elemento specifico esiste in un campo array. È utile quando si vogliono trovare entità in cui un determinato elemento è presente nella matrice.
Esempio
Si supponga di avere un campo array history_temperatures
, che contiene le temperature minime registrate per diversi anni. Per trovare tutte le entità in cui l'array contiene il valore 23
, si può usare la seguente espressione di filtro.
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
Questo restituirà tutte le entità in cui l'array history_temperatures
contiene il valore 23
.
ARRAY_CONTAINS_ALL
L'operatore ARRAY_CONTAINS_ALL
assicura che tutti gli elementi dell'elenco specificato siano presenti nel campo dell'array. Questo operatore è utile quando si desidera abbinare entità che contengono più valori nell'array.
Esempio
Se si vogliono trovare tutte le entità in cui l'array history_temperatures
contiene sia 23
che 24
, si può usare.
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
Questo restituirà tutte le entità in cui l'array history_temperatures
contiene entrambi i valori specificati.
ARRAY_CONTAINS_ANY
L'operatore ARRAY_CONTAINS_ANY
controlla se uno qualsiasi degli elementi dell'elenco specificato è presente nel campo dell'array. È utile quando si desidera abbinare entità che contengono almeno uno dei valori specificati nell'array.
Esempio
Per trovare tutte le entità in cui l'array history_temperatures
contiene o 23
o 24
, si può usare l'operatore.
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
Questo restituirà tutte le entità in cui l'array history_temperatures
contiene almeno uno dei valori 23
o 24
.
LUNGHEZZA_ARRAY
L'operatore ARRAY_LENGTH
consente di filtrare le entità in base al numero di elementi di un campo array. È utile quando si devono trovare entità con array di una certa lunghezza.
Esempio
Se si desidera trovare tutte le entità in cui l'array history_temperatures
ha meno di 10 elementi, è possibile utilizzare l'operatore .
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Questo restituirà tutte le entità in cui l'array history_temperatures
ha meno di 10 elementi.