Commit Graph
5 Commits
Author SHA1 Message Date
Dylan CouzonandClaude Opus 4.7 c0128a53bc Apply adversarial-review fixes to hybrid-queries and snippets
Address findings from a code-bot adversarial review of the hybrid-search
materials:

- `hybrid-formula-decay/` (all 7 language sources + http.md +
  `_description.md`): wrap the decay term in `MultExpression(mult=[0.1, ...])`
  in every language. Previously the snippets summed `$score` with
  `ExpDecayExpression` directly, modeling the failure mode the docs
  explicitly warn against (un-weighted decay crowds out small RRF scores).
  Also document the `defaults` requirement and the recommended datetime
  payload index in `_description.md`. Build validated across all 6 SDKs.

- `hybrid-rrf/go.go`: add `Limit: qdrant.PtrOf(uint64(20))` to both
  prefetches so the Go snippet matches the other language tabs.

- `hybrid-queries.md`:
  - Reframe the weighted-RRF intro to drop "semantic search model
    understands meaning better than a simple keyword matcher". On
    SciFact (the corpus in the companion notebook) BM25 actually beats
    dense, so the universal claim was contradicted by our own data.
  - Clarify that the notebook provides a tuning helper to adapt to a
    train/val split, not that it demonstrates the split itself.
  - Add a one-line note that Qdrant uses zero-based rank positions so
    readers can verify the RRF formula against actual scores.
  - Apply brand-voice fixes: Title Case on "Multi-Stage Queries" and
    "Re-Scoring Examples", replace "all the above techniques" with
    "all of these techniques".

`generated/*.md` regenerated via `./docker.sh ./generate-md.py`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 21:54:47 -04:00
Dylan CouzonandClaude Opus 4.7 fc299a0e9c Switch hybrid-rrf snippets to RrfQuery API
Replaces the older `FusionQuery(fusion=Fusion.RRF)` enum form with
`RrfQuery(rrf=Rrf())` across all language tabs (Python, TypeScript,
Rust, Go, Java, C#) plus the REST body in `http.md`, for both the
`hybrid-rrf/` snippet and the inner RRF prefetch inside
`hybrid-formula-decay/`. The newer dedicated `Rrf` message is the
recommended path going forward; the old enum stays supported for
backward compatibility. Server-side both forms converge to the same
`FusionInternal::Rrf { k: 2, weights: None }`, verified against the
qdrant/qdrant source.

`generated/*.md` files in both directories regenerated via
`./docker.sh ./generate-md.py`. `./docker.sh ./check.py build` passes
across all six SDKs.

Also softens the DBSF prose in hybrid-queries.md to drop the
"weighted RRF tends to win" framing. Neither method dominates the
other in general.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 21:04:09 -04:00
xzfc 74a785218b Fix type-checking errors in snippets (code only, no .md)
This commit both:
- Fixes pre-existing mistakes in snippets, aka wrong code samples.
- Adds hidden (`@hide`) statements that do not appear in the docs,
  but satisfy typecheckers.
2025-11-28 22:02:07 +00:00
xzfc 00896acb28 Automated snippet conversion by scripts
These changes are purely mechanical to differentiate them from manual
fixes/adjustments made in the next commit.
This results in broken code as some snippets contain errors.

Made in four steps:
1. Run ./migrate-snippet.py that converts `.md` files to code files
   and perhaps adds missing lines under `// @hide` comments.
2. Sort Java imports.
3. Remove old `.md` files.
4. Run ./generate.md to produce `*/generated/*.md` files.
2025-11-28 22:00:47 +00:00
902e937a25 Document custom RRF (#1985)
* make dedicated fusion strategy sections

* docs: Java, Go, C# snippets

Signed-off-by: Anush008 <anushshetty90@gmail.com>

* add formula for rrf

* add rust and python snippets

* Use consistent formatting

---------

Signed-off-by: Anush008 <anushshetty90@gmail.com>
Co-authored-by: Anush008 <anushshetty90@gmail.com>
Co-authored-by: Tim Visée <tim@visee.me>
2025-11-17 15:05:52 +01:00