• Über Milvus
  • Los geht's
  • Konzepte
  • Benutzerhandbuch
    • Sammlungen
    • Schema & Datenfelder
    • Einfügen & Löschen
    • Indizes
    • Suche
    • Einbettungen & Reranking
    • Optimierung der Speicherung
  • Datenimport
  • AI-Tools
  • Leitfaden für die Verwaltung
  • Werkzeuge
  • Integrationen
  • Anleitungen
  • FAQs
  • API Reference

STL_SORT

Der STL_SORT Index ist ein Indextyp, der speziell dafür entwickelt wurde, die Abfrageleistung für numerische Felder (INT8, INT16, etc.), VARCHAR Felder oder TIMESTAMPTZ Felder innerhalb von Milvus zu verbessern, indem die Daten in einer sortierten Reihenfolge organisiert werden.

Verwenden Sie den STL_SORT Index, wenn Sie häufig Abfragen mit:

  • Vergleichsfilterung mit den Operatoren ==, !=, >, <, >=, und <=

  • Bereichsfilterung mit den Operatoren IN und LIKE

Unterstützte Datentypen

  • Numerische Felder (z. B. INT8, INT16, INT32, INT64, FLOAT, DOUBLE). Einzelheiten finden Sie unter Boolesche & Zahlen.

  • VARCHAR Felder. Weitere Informationen finden Sie unter String-Feld.

  • TIMESTAMPTZ Felder. Weitere Informationen finden Sie unter TIMESTAMPTZ-Feld.

Wie es funktioniert

Milvus implementiert STL_SORT in zwei Phasen:

  1. Index aufbauen

    • Während der Aufnahme sammelt Milvus alle Werte für das indizierte Feld.

    • Die Werte werden in aufsteigender Reihenfolge mit std::sort der C++ STL sortiert.

    • Jeder Wert wird mit seiner Entitäts-ID gepaart, und das sortierte Array wird als Index persistiert.

  2. Abfragen bescheunigen

    • Zur Abfragezeit verwendet Milvus eine binäre Suche(std::lower_bound und std::upper_bound) für das sortierte Array.

    • Bei Gleichheit findet Milvus schnell alle übereinstimmenden Werte.

    • Bei Bereichen findet Milvus die Start- und Endpositionen und gibt alle Werte dazwischen zurück.

    • Die übereinstimmenden Entitäts-IDs werden zur endgültigen Zusammenstellung der Ergebnisse an den Abfrageexecutor weitergeleitet.

Dies reduziert die Abfragekomplexität von O(n) (vollständiger Scan) auf O(log n + m), wobei m die Anzahl der Übereinstimmungen ist.

Einen STL_SORT-Index erstellen

Sie können einen STL_SORT Index für ein numerisches oder TIMESTAMPTZ Feld erstellen. Es sind keine zusätzlichen Parameter erforderlich.

Das folgende Beispiel zeigt, wie Sie einen STL_SORT Index für ein TIMESTAMPTZ Feld erstellen:

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
)

Löschen eines Index

Verwenden Sie die Methode drop_index(), um einen bestehenden Index aus einer Sammlung zu entfernen.

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

Hinweise zur Verwendung

  • Feldtypen: Funktioniert mit numerischen und TIMESTAMPTZ Feldern. Weitere Informationen zu den Datentypen finden Sie unter Boolesche und numerische Felder und TIMESTAMPTZ-Felder.

  • Parameter: Es werden keine Indexparameter benötigt.

  • Mmap nicht unterstützt: Der Modus "Memory-mapped" ist für STL_SORT nicht verfügbar.

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?