mcpField
Q
qdrant-edge

qdrant-edge

github.com/qdrant数据与数据库265285 次安装1 天前更新
代码仓库

关于 qdrant-edge

qdrant-edge 是面向在 Python 或 Rust 应用中嵌入 Qdrant Edge 的开发者的技能指南,介绍分片内置操作、基于快照的同步模式,以及单节点和无内置云同步等限制。

主要功能

  1. 01内置 BM25 与稀疏向量搜索
  2. 02密集与稀疏混合查询
  3. 03基于快照刷新分片
  4. 04手动优化与建立索引
  5. 05估算 WAL 与备份存储

适用场景

  1. 01从服务器快照初始化本地分片
  2. 02增量刷新设备上的分片
  3. 03运行关键词与向量混合搜索
  4. 04批量写入后压缩并建立索引

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/qdrant-edge确认已加载。

详细介绍

基于 Qdrant Edge 构建

Edge 是嵌入到进程中的 Qdrant 引擎(Python 或 Rust),而不是一个可封装的轻量本地向量存储。常见的失败原因是重新实现分片已有的功能:关键词评分、应用快照、分面和计数。在编写这些功能之前,请先检查分片 API。Edge 确实不提供一键云同步,因此了解内置功能可以避免重复实现已有功能,也能避免期待 Edge 不具备的能力。Edge 是单节点的,并与服务器共享数据格式。

  • Edge 处于 Beta 阶段:固定版本,因为 API 会随版本变化 Qdrant Edge。

将分片与 Qdrant 服务器同步

适用场景:从服务器初始化分片、保持分片最新、备份分片,或将多台设备的数据汇总到一个集合中。

没有内置的 .sync()。同步是通过分片辅助方法和自定义传输机制组合实现的模式,因此不要寻找一个调用就能完成同步的方法。

  • 遵循文档中的双分片模式:使用 mutable 分片进行本地写入,使用从服务器快照恢复的 immutable 分片;同时查询两者,并按计划刷新 Edge 同步指南。
  • 你需要自行实现快照下载(通过普通 HTTP 访问分片快照端点),然后使用 unpack_snapshot 和 update_from_snapshot 应用快照。不要手动解压 tar 文件或合并分段 同步模式。
  • 使用 snapshot_manifest 构建部分快照进行增量刷新,而不是每个周期都使用完整快照 同步模式。
  • 推送需要你自行实现双写:每次本地 upsert 时,将点加入队列,再由后台工作线程将其 upsert 到服务器;离线时进行缓冲 同步模式。

设备端的关键词与混合搜索

适用场景:你需要精确词项匹配或 BM25 匹配,可以单独使用,也可以与向量搭配使用。

  • BM25 已内置于 Edge(Bm25、Bm25Config、embed_document、embed_query),通过 EdgeSparseVectorParams 上的 IDF Modifier 配置,并且与服务器的稀疏向量 BM25 模型在线格式上兼容(Edge BM25 文档只介绍稀疏向量变体):从服务器快照初始化的分片无需重新索引即可响应本地 BM25 查询。不要再引入第二个 BM25 库 Edge BM25
  • Edge 不提供稠密嵌入:请使用单独的 fastembed 包在设备端生成 FastEmbed 嵌入
  • 对于混合搜索,将稠密和稀疏检索分支作为 prefetches 执行,并在一次 query 调用中使用 Fusion 查询融合结果,而不是在应用代码中合并排名 读取数据

运维 Shard

适用场景:写入不断累积、插入后搜索结果看起来过时,或备份大小超过数据量。

  • Edge 没有后台优化器。批量写入后调用 optimize:它会构建索引(包括稀疏索引)并回收已删除的点。不调用它,这些数据就会一直处于未索引状态 Edge quickstart
  • 分面、计数和枚举功能均为内置功能(facet、count、scroll);对于需要筛选或分面的字段,使用 create_field_index 创建索引,而不是在应用代码中进行聚合 Edge quickstart
  • 预写日志预分配了 32 MB,因此磁盘占用和备份大小看起来会膨胀。使用 wal_options(Rust)缩小它,不要将原始文件大小视为实际占用 Edge quickstart

不要做的事

  • 不要期待双向 .sync() 或内置推送路径:Edge 提供快照应用功能,传输和双写由你负责
  • 不要手动解包或合并快照分段,应使用 unpack_snapshot 和 update_from_snapshot
  • Edge 已内置 BM25,不要使用自定义或第三方 BM25
  • 不要对查询使用 embed_document,也不要对文档使用 embed_query:两者的权重不同,会导致结果出错
  • 不要在应用代码中合并稠密和稀疏排序:Edge query 接受 prefetches,并通过 Fusion 查询融合结果
  • 不要假设它有类似服务端的后台优化器:在调用 optimize 之前,不会建立索引或进行压缩
  • 需要分布式或多节点搜索时,不要选择 Edge:它是单节点的 Qdrant Edge
  • 不要声称支持 Python 和 Rust 之外的语言,也不要声称支持 Edge 文档未说明的操作系统或加速器

评论

支持 Markdown