SuperAPI AI 工具集

qdrant-scaling-query-volume

数据与分析

查看项目

更新于 10-16 06:55

技能介绍

Scaling for Query Volume

用途

该技能用于指导 Qdrant 的查询规模扩展,适用于诸如“查询返回结果过多”“scroll 性能”“limit 取值过大”“分页搜索”等场景。

问题背景

当一次查询的 limit 很大(例如 1000),并且存在多个分片(例如 10 个)时,朴素实现会要求每个分片都返回完整的 1000 条结果,合计需要传输并合并 10000 个打分点。这种做法是浪费的,因为数据在自动分片中是随机分布的。

核心思路

不向每个分片索取完整的 limit,而是根据泊松分布统计为每个分片计算一个更小的 limit,然后再合并结果。这一做法之所以安全,是因为自动分片保证了数据随机且独立地分布。

生效条件

  • 分片数大于 1
  • 正在使用自动分片(所有被查询的分片共享同一个 shard key)
  • 请求的 limit 加 offset 达到或超过 SHARD_QUERY_SUBSAMPLING_LIMIT(128)
  • 查询不是精确查询

主要权衡

该策略用极小概率的结果略微不完整,换取跨分片数据传输的大幅减少,尤其适用于跨多个分片的高 limit 查询。1.2 倍安全系数与 99.9% 泊松阈值使错误率保持极低,与 HNSW 等近似向量索引本身引入的误差相当。