Skip to content

queryVector(): setRadius() semantics for METRIC_IP are non-intuitive (score vs internal distance) #201

Description

@s2x

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:276score <= 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions