Calibrates BM25 length normalization for the short title+categories
sparse field with a comment on why. Removes redundant k1/b/avg_len
prose from the tutorial Open Ends section and the cross-link paragraph
in text-search.md, since the BM25 Parameters subsection above already
documents calibration with a working example.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The two lookup_from mentions were misleading: the feature is for
querying by ID across collections, not for splitting representation
storage. The line-107 paragraph now points readers to the documented
with_lookup pattern for the payload-split case and stays silent on
vector splits, which are a separate design problem (multiple queries
plus client-side fusion) that doesn't fit this tutorial's scope.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The arxiv data has abstracts, not summaries. Renaming the named
vector and prose throughout removes the ambiguity flagged on the PR.
Adds a short paragraph to the Dataset section explaining that
abstracts fit any embedding model's context window, so chunking is
included to mirror the pipeline shape you'd use on full bodies.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drops FastEmbed in favor of server-side embedding via Cloud Inference
for dense vectors and core BM25 (in Qdrant since 1.15) for sparse.
Simplifies ingestion and query code; adds an aside covering the
self-host path. Also clears two em dashes from the tutorial prose.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the FastEmbed tutorial link with the hybrid search section
of the core Text Search guide, since FastEmbed is a satellite library.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The FAQ linked to /documentation/tutorials-search-engineering/retrieval-quality/,
which only exists as a Hugo alias on the ANN recall tutorial. Aliases emit
HTML redirects but not Markdown ones, so the link checker hits the .md
output and 404s. The surrounding prose (golden query set, NDCG@10) is
relevance-tutorial territory anyway.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Add TurboQuant quantization documentation (v1.18.0)
Adds a new TurboQuant section to the quantization guide covering the
four encoding options (bits1/bits1_5/bits2/bits4), automatic asymmetric
quantization, distance metric support, and the automatic TQ+ precision
enhancement for sealed segments. Updates the comparison table and
method-selection guidance to recommend TurboQuant over Binary and
Scalar Quantization for new collections. Adds HTTP-only snippets for
basic setup and explicit bit-depth selection.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Consistently use title case for headers
* Restructure doc to lead with TurboQuant
* Clarify rescoring
* Edits
* Soften TQ advice
* Updates
* Fix
* Apply suggestions from code review
Co-authored-by: Jojii <15957865+JojiiOfficial@users.noreply.github.com>
* Review feedback
* Add Go/Java/C# code snippets
* Add list of 4 quantization methods to introduction
* Review feedback
* Stronger advice for TQ4
* Add Python snippets
* Add Rust snippets
* Add TS snippets
* Update recommendation table
* Update production checklist
* Remove link to article
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Jojii <15957865+JojiiOfficial@users.noreply.github.com>
The previous `hugo --gc && hugo serve &` chain backgrounded the build,
so `sleep 5` could expire before the server was actually listening.
After the Hugo 0.160.1 upgrade the build alone takes ~6s, causing
lychee to hit a connection refused, cache it per-host, and report every
internal URL as a "broken link". Poll the port until it answers instead.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>