Dieses Kapitel bietet eine Einführung in den Schnellstart der Qdrant-Vektordatenbank und in die Vorgehensweise bei der Bedienung der Vektordatenbank mithilfe der RESTful API.
Installation von Qdrant
Hinweis: Dieses Tutorial basiert auf der Installation der Qdrant-Datenbank mithilfe von Docker. Installieren Sie bitte Docker, bevor Sie fortfahren.
Laden Sie das Qdrant-Image herunter
docker pull qdrant/qdrant
Starten Sie den Qdrant Vektordatenbankdienst
docker run -p 6333:6333 \
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
qdrant/qdrant
Standardmäßig ordnen wir das lokale Dateiverzeichnis dem Container zu, und alle Daten werden im Verzeichnis ./qdrant_storage gespeichert.
Sie können jetzt über localhost:6333 auf Qdrant zugreifen.
Die Qdrant-Vektordatenbank unterstützt RESTful API für Datenbankoperationen sowie SDKs für Programmiersprachen wie Python, Go usw. Dieses Tutorial konzentriert sich hauptsächlich auf die Erläuterung der Verwendung der RESTful API.
Beispiel zum Zugriff auf die API
curl -X PUT 'http://localhost:6333/collections/test_collection' \
-H 'Content-Type: application/json' \
--data-raw '{
"vectors": {
"size": 4,
"distance": "Dot"
}
}'
Qdrant Web UI
Greifen Sie über die Adresse http://localhost:6333/dashboard auf die Web-Oberfläche zu
Erstellen von Sammlungen
Das Konzept von Sammlungen in der Qdrant-Vektordatenbank kann mit der Tabellenstruktur von MYSQL verglichen werden, welche zur einheitlichen Speicherung von Vektordaten des gleichen Typs verwendet wird. Jede in der Sammlung gespeicherte Daten, die in Qdrant als Punkte bezeichnet werden, haben eine ähnliche Bedeutung wie die Punkte im mathematischen geometrischen Raum und repräsentieren die Darstellung des Vektors im geometrischen Raum (behandeln Sie es einfach als ein Datenstück).
PUT /collections/{collection_name}
{
"vectors": {
"size": 300,
"distance": "Cosine"
}
}
Parametererklärung:
Parameter | Beschreibung |
---|---|
collection_name | Name der Sammlung (erforderlich) |
vectors | Vektorparameterdefinition (erforderlich) |
vectors.size | Stellt die Vektorgröße (oder Dimension des Vektors) dar |
vectors.distance | Stellt den Vektorsimilaritätsalgorithmus dar, der hauptsächlich drei Algorithmen umfasst: "Cosine", "Euklidisch", "Dot" |
Hinzufügen von Vektoren (Punkten)
Nachdem eine Sammlung erstellt wurde, können wir Vektordaten zur Sammlung hinzufügen. In Qdrant werden Vektordaten mithilfe von Punkten dargestellt, wobei jede Punktdatei aus drei Teilen besteht: ID, Nutzlast (zugehörige Daten) und Vektordaten.
Beispiel
PUT /collections/{collection_name}/points
{
"points": [
{
"id": "5c56c793-69f3-4fbf-87e6-c4bf54c28c26", // ID
"payload": {"color": "rot"}, // Zugehörige Attributdaten, normalerweise betriebliche Attribute, wie z. B. Bestell-ID, Produkt-ID, Titel usw.
"vector": [0.9, 0.1, 0.1] // Vektordaten, die die Merkmale der aktuellen Geschäftsdaten darstellen
}
]
}
Vektorsuche
Nachdem Vektordaten hinzugefügt wurden, können wir eine semantische Ähnlichkeitssuche mithilfe von Vektoren durchführen.
Beispiel
// collection_name - Name der Sammlung
POST /collections/{collection_name}/points/search
{
"vector": [0.2, 0.1, 0.9, 0.7], // Vektorparameter
"limit": 3 // Die obersten 3 Daten mit höchster Ähnlichkeit zurückgeben
}
Parametererklärung:
- Vektoren: Vektorparameter, die zur Suche nach Inhalten ähnlich diesem Vektor verwendet werden. Sie können beispielsweise die für eine Suche benötigten Schlüsselwörter in Vektoren umwandeln und dann nach Inhalten suchen, die mit der Benutzereingabe zusammenhängen.
Attributfilterung
Bei der Suche nach Daten möchten wir neben der Durchführung von Ähnlichkeitssuchen mithilfe von Vektoren manchmal auch Attributfilter ähnlich der WHERE-Klausel von SQL ausführen, um bestimmte Attribute zu filtern. Qdrant unterstützt Filterabfragen zum Filtern von mit dem Punkt verknüpften Attributen.
Beispiel
// collection_name - Name der Sammlung
POST /collections/{collection_name}/points/search
{
"filter": { // Wird hauptsächlich zur Filterung der mit dem Payload verknüpften Attribute verwendet und das allgemeine Syntaxformat ist ähnlich der Elasticsearch-Syntax. Dieser Parameter ist optional.
"must": [ // Filtern von Punkt-Daten mit color=red
{
"key": "color",
"match": {
"value": "red"
}
}
]
},
"vector": [0.2, 0.1, 0.9, 0.7], // Vektor-Parameter
"limit": 3
}
Für ausführlichere Anleitungen verweisen Sie bitte auf die folgenden Kapitel.