Skip to content

Send BM25 k and b in the nested params of qdrant#11012 - #186

Merged
agourlay merged 2 commits into
devfrom
bm25-params-client
Oct 12, 2026
Merged

agourlay merged 2 commits into
devfrom
bm25-params-client

Conversation

@agourlay

@agourlay agourlay commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

qdrant/qdrant#11012 reserved TextQuery fields 2 and 3 (k, b) and moved them into oneof scoring { Bm25Params bm25 = 4; }. bfb's locked client (rust-client 71143d8) still sends the old fields, and a current server drops them as unknown, so a kind: text request with k or b silently runs at the defaults (1.2, 0.75). Requests without them are unaffected.

The fix is the client: qdrant/rust-client#301 (merged) regenerates the proto, and TextQueryBuilder::k / b keep their signatures while filling scoring.bm25. So bfb's request code is unchanged. Only builds_a_text_request changes, to read k and b from the nested params.

The dependency stays on branch = "dev"; only the lock moves, to dev 637cee6 (rust-client#301 merged).

Verification

  • cargo +nightly fmt --all -- --check, cargo clippy --workspace --all-targets --all-features -- -D warnings: clean.
  • cargo test --workspace: 207 passed.
  • The client's end-to-end check in #301 (against a qdrant dev bfc0eab31 build) confirms that k and b set through the builder change the scores.

🤖 Generated with Claude Code

agourlay and others added 2 commits October 12, 2026 15:11
qdrant#11012 reserved TextQuery fields 2 and 3 and moved k/b into
`scoring.bm25`. With the old client a current server drops them as unknown
fields, so `kind: text` requests with k or b silently ran at the defaults.
The client's TextQueryBuilder keeps its setters, so only the test changes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@agourlay
agourlay marked this pull request as ready for review October 12, 2026 13:20
@agourlay
agourlay requested review from generall and timvisee October 12, 2026 13:22
@agourlay
agourlay merged commit 22e5481 into dev Oct 12, 2026
3 checks passed
agourlay added a commit to agourlay/strawmann that referenced this pull request Oct 12, 2026
qdrant#11012 nested TextQuery's k and b in `scoring.bm25` and reserved
fields 2 and 3, which a current Qdrant drops as unknown, so the old client
ran every W15 ladder row at 1.2 / 0.75 without an error. The pin moves with
both clients (qdrant/bfb#186, qdrant/rust-client#301), and strawmANN's
decoder reads Bm25Params and skips the reserved fields as Qdrant does.

text-differ passes every tier on both engines on scifact, ArguAna, FiQA
and Quora at the defaults and at 0.9 / 0.4 (T1 9.6e-7 at most).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants