Hybrid Search demo
配合文章《向量与标量的混合过滤检索》的最小演示脚本。 脚本用 numpy 实现暴力混合检索,并对比 “pre-filter + brute”、“post-filter”、“in-filter” 三种策略 在不同选择度下的召回率与候选扫描量。
依赖
- Python 3.9+, numpy
运行
python compare_strategies.py示例输出:
selectivity=0.5000 pre=1.000 post=1.000 in=1.000 scanned pre=5000 post=100 in=200
selectivity=0.0100 pre=1.000 post=0.080 in=0.960 scanned pre=100 post=100 in=2000
selectivity=0.0010 pre=1.000 post=0.000 in=0.620 scanned pre=10 post=100 in=10000
说明不同策略在选择度变化下的表现差异:post-filter 在低选择度下召回迅速崩溃; in-filter 需要随选择度放大 ef;pre-filter 在极低选择度下最稳。
这是教学 demo,不反映生产 ANN 索引的真实性能。