• Acerca de Milvus
  • Comenzar
  • Conceptos
  • Guía del usuario
  • Importación de datos
  • Herramientas de IA
  • Guía de administración
  • Herramientas
  • Integraciones
  • Tutoriales
  • Preguntas frecuentes
  • API Reference

STL_SORT

El índice STL_SORT es un tipo de índice diseñado específicamente para mejorar el rendimiento de las consultas en campos numéricos (INT8, INT16, etc.), campos VARCHAR o campos TIMESTAMPTZ dentro de Milvus organizando los datos en un orden ordenado.

Utilice el índice STL_SORT si ejecuta con frecuencia consultas con:

  • Filtrado por comparación con los operadores ==, !=, >, <, >=, y <=

  • Filtrado de rangos con los operadores IN y LIKE

Tipos de datos admitidos

  • Campos numéricos (por ejemplo, INT8, INT16, INT32, INT64, FLOAT, DOUBLE). Para más detalles, consulte Boolean & Number.

  • VARCHAR campos. Para obtener más información, consulte Campo de cadena.

  • TIMESTAMPTZ campos. Para obtener más información, consulte Campo TIMESTAMPTZ.

Cómo funciona

Milvus implementa STL_SORT en dos fases:

  1. Construcción del índice

    • Durante la ingesta, Milvus recopila todos los valores del campo indexado.

    • Los valores se ordenan en orden ascendente utilizando std::sort de C++ STL.

    • Cada valor se empareja con su ID de entidad y la matriz ordenada se mantiene como índice.

  2. Acelerar las consultas

    • En el momento de la consulta, Milvus utiliza la búsqueda binaria(std::lower_bound y std::upper_bound) en la matriz ordenada.

    • Para igualdades, Milvus encuentra rápidamente todos los valores coincidentes.

    • Para rangos, Milvus localiza las posiciones inicial y final y devuelve todos los valores intermedios.

    • Los ID de entidad coincidentes se pasan al ejecutor de la consulta para el ensamblaje del resultado final.

Esto reduce la complejidad de la consulta de O(n) (exploración completa) a O(log n + m), donde m es el número de coincidencias.

Creación de un índice STL_SORT

Puede crear un índice STL_SORT en un campo numérico o TIMESTAMPTZ. No se requieren parámetros adicionales.

El siguiente ejemplo muestra cómo crear un índice STL_SORT en un campo TIMESTAMPTZ:

from pymilvus import MilvusClient

client = MilvusClient(uri="http://localhost:19530") # Replace with your server address

# Assume you have defined a TIMESTAMPTZ field named "tsz" in your collection schema

# Prepare index parameters
index_params = client.prepare_index_params()

# Add RTREE index on the "tsz" field
index_params.add_index(
    field_name="tsz",
    index_type="STL_SORT",   # Index for TIMESTAMPTZ
    index_name="tsz_index",  # Optional, name your index
    params={}                # No extra params needed
)

# Create the index on the collection
client.create_index(
    collection_name="tsz_demo",
    index_params=index_params
)

Eliminar un índice

Utilice el método drop_index() para eliminar un índice existente de una colección.

client.drop_index(
    collection_name="tsz_demo",   # Name of the collection
    index_name="tsz_index" # Name of the index to drop
)

Notas de uso

  • Tipos de campo: Funciona con campos numéricos y TIMESTAMPTZ. Para obtener más información sobre los tipos de datos, consulte Boolean & Number y TIMESTAMPTZ Field.

  • Parámetros: No se necesitan parámetros de índice.

  • No admite Mmap: El modo de mapa de memoria no está disponible para STL_SORT.

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?