Skip to content

The builder assumes the vector leg always runs #2597

Description

@Hazel-Datastax

Current behavior

Why fix it

  • A single lexical leg can't run, because the vector read would throw.
  • The filter leg has no slot at all: it is neither a vector read nor a lexical read.
  • Patching would also work: make the vector slot optional and add a third slot for the filter leg. But with 4 new modes, every rule would need if branches in 5–6 places of a 495-line file, and there would be even more fake empty results. The rules in question:
    • which collection features are required;
    • how many documents to read;
    • the default rerank query and passage;
    • how to build each read.

Activity

  1. Hazel-Datastax commented on Oct 6, 2026

    @Hazel-Datastax
    ContributorAuthor

    After implementing this, a $hybrid keyword must have at least one leg, either vector ($vector / $vectorize) or lexical ($lexical). If neither is present, return a request error.

    The use of $hybrid in the sort clause does not guarantee that multiple legs will be run when the command is executed. We can only say that a Multi Leg findAndRerank may have more than one leg, not that it must have more than one.

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

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions