qdrant-edge

Par qdrant · skills

Guides pour construire sur Qdrant Edge, le shard embarqué en cours de processus. À utiliser quand quelqu'un demande « comment synchroniser Edge avec le serveur », « maintenir un shard local synchronisé avec Qdrant Cloud », « BM25 ou recherche par mots-clés sur Edge », « recherche hybride sur Edge », « embeddings sur l'appareil », « snapshots Edge », « appliquer un snapshot partiel », « pourquoi ma recherche Edge est vide après des insertions », ou quand on écrit du code de synchronisation personnalisé, du BM25 ou du code de fusion contre qdrant-edge. À utiliser également pour décider ce qu'Edge fournit nativement par rapport à ce que vous devez implémenter vous-même.

npx skills add https://github.com/qdrant/skills --skill qdrant-edge

Construire sur Qdrant Edge

Edge est le moteur Qdrant intégré à votre processus (Python ou Rust), pas un simple magasin de vecteurs local à encapsuler. Le mode défaillance consiste à reconstruire ce que le shard livre déjà : scoring par mots-clés, application de snapshot, facetting, comptage. Avant d'écrire quoi que ce soit, consultez l'API du shard. Deux choses que Edge ne vous donne PAS sont une synchronisation cloud en un appel et la fusion au moment de la requête, donc distinguer les deux vous évite à la fois de réinventer les fonctions intégrées et d'attendre des capacités que Edge n'a pas. Edge est single-node et partage le format de données du serveur.

  • Edge est en bêta : fixez votre version, l'API évolue entre les versions Qdrant Edge.

Synchroniser un Shard avec un serveur Qdrant

À utiliser quand : amorcer un shard à partir d'un serveur, le maintenir à jour, le sauvegarder, ou agréger de nombreux appareils dans une collection.

Il n'existe pas de .sync() intégré. La synchronisation est un motif que vous assemblez à partir des helpers du shard plus votre propre transport, ne cherchez donc pas un seul appel.

  • Suivez le motif dual-shard documenté : un shard mutable pour les écritures locales plus un shard immutable restauré à partir d'un snapshot serveur, interrogez les deux, rafraîchissez selon un calendrier Edge synchronization guide.
  • Vous écrivez le téléchargement du snapshot (HTTP simple vers l'endpoint snapshot du shard), puis l'appliquez avec unpack_snapshot et update_from_snapshot. Ne décompressez pas ou ne fusionnez pas les segments à la main Synchronization patterns.
  • Rafraîchissez de manière incrémentale avec un snapshot partiel construit à partir de snapshot_manifest, pas un snapshot complet à chaque cycle Synchronization patterns.
  • Push est votre propre double-écriture : à chaque upsert local, enfilez le point et laissez un worker en arrière-plan l'upserter au serveur, avec mise en buffer hors ligne Synchronization patterns.

Recherche par mots-clés et hybride sur appareil

À utiliser quand : vous avez besoin de correspondance par terme exact ou BM25, seule ou aux côtés de vecteurs.

  • BM25 est intégré à Edge (Bm25, Bm25Config, embed_document, embed_query) avec le Modifier IDF sur EdgeSparseVectorParams, et est compatible avec le BM25 serveur : un shard amorcé à partir d'un snapshot serveur répond aux requêtes BM25 locales sans ré-indexation. Ne distribuez pas une deuxième bibliothèque BM25 Edge BM25
  • Les embeddings denses ne sont PAS dans Edge : générez-les sur appareil avec le package fastembed séparé FastEmbed embeddings
  • Edge interroge un champ de vecteur par requête (using) et ne fusionne pas les vecteurs denses et creux au moment de la requête. Exécutez chaque branche séparément et combinez les classements dans le code application Edge quickstart

Exploiter le Shard

À utiliser quand : les écritures se sont accumulées, la recherche semble obsolète après insertions, ou une sauvegarde est plus grande que les données.

  • Edge n'a PAS d'optimiseur en arrière-plan. Appelez optimize après les écritures en masse : cela construit les index (y compris l'index creux) et récupère les points supprimés. Passez à côté et ces données restent non indexées Edge quickstart
  • Facetting, comptage et énumération sont intégrés (facet, count, scroll) ; indexez les champs que vous filtrez ou facettez avec create_field_index plutôt que d'agréger dans le code application Edge quickstart
  • Le write-ahead log est pré-alloué à 32 MB et gonfle la taille de disque et de sauvegarde apparente. Réduisez-le avec wal_options (Rust), et ne traitez pas la taille brute du fichier comme usage réel Edge quickstart

Ce qu'il NE FAUT PAS faire

  • S'attendre à un .sync() bidirectionnel ou à un chemin push intégré : Edge vous donne l'application de snapshot, vous possédez le transport et la double-écriture
  • Décompresser ou fusionner les segments de snapshot à la main au lieu d'utiliser unpack_snapshot et update_from_snapshot
  • Distribuer un BM25 personnalisé ou tiers quand Edge en a un intégré
  • Utiliser embed_document pour les requêtes ou embed_query pour les documents : la pondération diffère et les résultats se dégradent
  • Supposer que Edge fusionne denses et creux ou consomme Prefetch : combinez les classements dans le code application
  • Supposer un optimiseur en arrière-plan comme celui du serveur : rien n'est indexé ou compacté jusqu'à ce que vous appeliez optimize
  • Recourir à Edge quand vous avez besoin de recherche distribuée ou multi-node : c'est single-node Qdrant Edge
  • Affirmer un support pour une langue au-delà de Python et Rust, ou un OS ou accélérateur que la documentation Edge n'énonce pas

Skills similaires