Issue (found during #197 fix, verified by subagent review)
Radius is compared against the internal distance representation (score <= threshold), so for inner-product metric (METRIC_IP) probes radius values 0.4–1.0 never filter anything. Users setting setRadius() on IP collections may silently get unfiltered results.
Evidence
zvec/src/include/zvec/core/framework/index_document.h:276 — score <= threshold_
- Radius semantics for IP metric differ from cosine/L2 where a distance threshold makes intuitive sense.
Suggested action
- Likely upstream documentation/design concern (alibaba/zvec).
- In this repo: document the radius semantics per metric in the PHP docs / examples, and/or add a validation warning when
setRadius() is used with a METRIC_IP collection.
Issue (found during #197 fix, verified by subagent review)
Radius is compared against the internal distance representation (
score <= threshold), so for inner-product metric (METRIC_IP) probes radius values 0.4–1.0 never filter anything. Users settingsetRadius()on IP collections may silently get unfiltered results.Evidence
zvec/src/include/zvec/core/framework/index_document.h:276—score <= threshold_Suggested action
setRadius()is used with aMETRIC_IPcollection.