Start · Sprachen · PHP · Referenz · MongoDB\BSON\VectorType

MongoDB\BSON\VectorType

Enum

Repräsentiert den BSON-Vektortyp für numerische Vektordaten innerhalb der MongoDB PHP-Extension.

Kategorie: db

Signatur

enum VectorType: int

Beschreibung

MongoDB\BSON\VectorType ist ein PHP-Enum, das die verschiedenen Untertypen des BSON Binary Subtype 9 (Vector) definiert. Vektoren werden in MongoDB zur effizienten Speicherung numerischer Vektordaten verwendet, wie sie etwa bei Machine-Learning-Anwendungen, Embeddings oder Ähnlichkeitssuchen anfallen.

Jeder Enum-Fall entspricht einem bestimmten numerischen Datenformat, in dem die Vektorelemente kodiert sind. Die Wahl des richtigen Typs beeinflusst den Speicherbedarf und die Präzision der gespeicherten Vektordaten erheblich. Für hochdimensionale Embeddings (z. B. aus Sprachmodellen) ist Float32 die gängigste Wahl.

Das Enum wird in Verbindung mit der Klasse MongoDB\BSON\PackedArray bzw. den Vektor-Konstruktionsmethoden verwendet, um typisierte BSON-Vektoren zu erstellen und zu lesen. Es stellt sicher, dass nur gültige, von MongoDB unterstützte Vektorkodierungen verwendet werden.

Beispiele

Float32-Vektor erstellen und in MongoDB speichern

<?php
use MongoDB\BSON\Vector;
use MongoDB\BSON\VectorType;

// Vektor aus Float32-Werten erzeugen
$vector = Vector::fromArray(VectorType::Float32, [0.1, 0.2, 0.3, 0.9]);

// In einer MongoDB-Collection speichern
$collection = (new MongoDB\Client())->selectCollection('ml', 'embeddings');
$collection->insertOne([
    'label'     => 'Beispiel-Embedding',
    'embedding' => $vector,
]);

echo "Vektortyp-Wert: " . VectorType::Float32->value . PHP_EOL;
// Gibt den internen Integer-Wert des Enum-Falls aus
Vektortyp-Wert: 39

Alle verfügbaren VectorType-Fälle ausgeben

<?php
use MongoDB\BSON\VectorType;

foreach (VectorType::cases() as $case) {
    echo sprintf("Name: %-10s | Wert: %d\n", $case->name, $case->value);
}
// Listet alle unterstützten Vektor-Untertypen mit ihrem internen BSON-Wert auf
Name: Int8 | Wert: 3 Name: Float32 | Wert: 39 Name: PackedBit | Wert: 16

// Wichtig · Fallstricke

Verfügbarkeit: Dieses Enum ist nur verfügbar, wenn die mongodb-Extension (PECL) in einer Version installiert ist, die den BSON Vector-Typ unterstützt (ab etwa Version 1.20). Achten Sie darauf, dass auch der verwendete MongoDB-Server Vector Search unterstützt (ab MongoDB 6.0 Atlas oder 7.0 Community).

Randfälle: Der Typ PackedBit erwartet Binärvektor-Daten, bei denen jedes Bit einem Element entspricht. Falsch kodierte Daten führen zu fehlerhaften Abfrageergebnissen ohne Fehlermeldung.