Commit Graph
2425 Commits
Author SHA1 Message Date
Mohamed Arbi b889e19117 docs: fix typos and improve clarity in quantization/turboQuant docs (#2371) 2026-05-26 09:36:46 +02:00
Nikhil Varma 36f089d988 Update documentation for Invite flow & Add Member to a Role flow 2026-05-25 14:28:36 +05:30
Dylan Couzon e6f688d10a Merge pull request #2362 from qdrant/with_lookup-example
Add with_lookup example
2026-05-21 11:04:34 -04:00
Dylan Couzon 844042032f Merge pull request #2357 from qdrant/hybrid-search-gap-3
Document fusion methods: weighted RRF, DBSF, FormulaQuery
2026-05-20 12:48:26 -04:00
Dylan CouzonandClaude Opus 4.7 bbb09d9310 Give chunk 1 array document_id in ingest example
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 12:35:05 -04:00
Dylan CouzonandClaude Opus 4.7 0ead6b8f8b Disambiguate document ids in with_lookup example
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:35:38 -04:00
Dylan Couzon 13690c49ac remove 2nd query_points_groups example 2026-05-20 11:13:47 -04:00
Abdon PijpelinkandTim Visée cf94245089 Increase payload indexing advice visibility (#2360)
* Add new 'Create a Payload Index' section

* Add indexing tip to low latency search, search, and filtering docs

* Add bash code snippet

* Edits

* Update qdrant-landing/content/documentation/manage-data/indexing.md

Co-authored-by: Tim Visée <tim@visee.me>

---------

Co-authored-by: Tim Visée <tim@visee.me>
2026-05-20 10:05:33 +02:00
Dylan CouzonandLuis Cossío 9114e61b9e Syntax
Co-authored-by: Luis Cossío <luis.cossio@qdrant.com>
2026-05-19 19:26:05 -04:00
Dylan CouzonandClaude Opus 4.7 a6104d7b7a Add worked with_lookup example
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 19:08:36 -04:00
Dylan CouzonandClaude Opus 4.7 044dc73080 Use language-agnostic "formula query" in hybrid-queries prose
FormulaQuery is the Python class name; TS uses formula. Switch prose,
heading, link anchor, and SEO meta to the neutral term so the docs read
correctly regardless of SDK.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 11:43:35 -04:00
Abdon Pijpelink 97b3a05c5f Reorganize search tutorials (#2352)
* Restructure search tutorials

* Deleted moved tutorial

* Re-instate deleted frontmatter

* Fix links to moved files

* Move code search and build tutorials to 'Develop&Implement' section

* Update landing pages too

* Fix broken links
2026-05-19 16:38:52 +02:00
Dylan CouzonandClaude Opus 4.7 a42055e416 Apply reviewer suggestions to hybrid-queries
Move FormulaQuery from Hybrid Search into Multi-Stage Queries; soften
weighted-RRF tuning prose; tighten the RRF-k intro.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 10:29:43 -04:00
George d7c65333b6 remove python-client.qdrant.com link (#2355) 2026-05-18 17:46:46 +07:00
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
Dylan Couzon 06fbbf7fc3 wording 2026-05-15 19:08:15 -04:00
Dylan Couzon f2e66d326f Expand hybrid-queries with DBSF, weighted RRF tuning, FormulaQuery 2026-05-15 18:00:05 -04:00
Dylan Couzon 8cdce983ed upload snippets 2026-05-15 16:49:56 -04:00
Dylan Couzon 1d36116d77 Merge pull request #2334 from qdrant/hybrid-search-gap-2
Multi-representation search tutorial + supporting doc cross-links
2026-05-15 14:17:28 -04:00
Dylan CouzonandClaude Opus 4.7 f680674669 sharpen dense_title rationale and alert linear-fusion warning
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 14:14:21 -04:00
Tim Visée db67ab203f Merge pull request #2263 from qdrant/correct-param-index-note
Correct parameterized index note
2026-05-15 17:46:49 +02:00
Abdon Pijpelink 1a0f06231c Add links to TurboQuant article (#2354)
* Add links to TQ article

* Add link to articles for other quantization methods

* Update TQ article preview images
2026-05-15 16:26:18 +02:00
Dylan CouzonandClaude Opus 4.7 d355db954e link keyword index, price storage tradeoff, add Discord CTA
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 16:05:19 -04:00
Dylan Couzon e9aa78796f fix miss matched key value pair 2026-05-13 15:54:13 -04:00
kanungle b013a0b2e4 Merge branch 'master' into meta-descriptions 2026-05-12 15:44:44 -07:00
brone1323andAbdon Pijpelink 5aa98e5959 fix(docs): correct C# MatchExcept snippet (was using Match instead of MatchExcept) (#2345)
* fix(docs): correct C# MatchExcept snippet to use MatchExcept instead of Match

The C# code example in the match-except filter condition snippet was
incorrectly using Match() instead of MatchExcept(), making it identical
to the match-any example. This is misleading for developers trying to
implement the MatchExcept (NOT IN) filter condition in C#.

Fixes #1656

* Add Markdownified code snippet

---------

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@qdrant.com>
2026-05-12 10:26:57 +02:00
Dylan Couzon 31a3c88379 add document_id payload index and tune upload_points
Adds the missing keyword index on document_id so grouping works under
strict mode (Cloud default), and tunes the upload_points call to
batch_size=256, parallel=2 for faster ingestion. Mirrors the notebook
in qdrant/examples#103.
2026-05-11 22:05:24 -04:00
Dylan Couzon 5502b91064 point notebook links at Colab for direct run
Switches the two body references to the accompanying notebook from
GitHub URLs to githubtocolab so readers can run it without cloning.
The header table's GitHub link stays for readers who want the source
view.
2026-05-11 21:14:59 -04:00
Dylan Couzon def2b3a39b improve clarity FormulaQuery syntax 2026-05-11 20:51:07 -04:00
Dylan CouzonandClaude Opus 4.7 3de7b1ddfb tighten intro, dataset, and wrap-up; add notebook pointer before setup
Tightens awkward and stale phrasing across the intro and Dataset
section (per a full review pass), repositions FormulaQuery in Wrapping
Up as an alternative rather than part of the default pipeline, drops
the redundant 'document-side equivalent' closing line, and adds a
one-line pointer to the notebook right before the Setup section so
readers can pivot to runnable code.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 20:23:42 -04:00
Dylan CouzonandClaude Opus 4.7 b30140820f tighten retrieval section and remove vector-description duplication
Adds dense_abstract as a fourth prefetch in retrieve() since we
ingest it already. Removes the unactionable dense_abstract hedge
paragraph, the When to Group section (the prefetch-limit gotcha
folds into a code comment), the duplicate schema-section vector
bullets, and the awkward transition sentence between the code and
the design subsections. Replaces 'summary' with 'abstract as a
whole' in descriptions for consistency with the schema rename done
earlier.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 19:53:39 -04:00
Dylan CouzonandClaude Opus 4.7 479d305aca explain query_points_groups inline and remove pattern-doesnt-fit section
Adds a one-line comment above the query_points_groups call so readers
see what the function does without waiting for the When to Group
subsection (which now sits at the end of the design-decisions list).

Removes the entire 'Where This Pattern Doesn't Fit' section: the
short/homogeneous paragraph read as obvious (a reader who's deep into
this tutorial wouldn't try to multi-rep a tweet), and the
inconsistent-metadata paragraph was too vague to be actionable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 19:08:37 -04:00
Dylan CouzonandClaude Opus 4.7 8ea4653ee8 move categories from BM25 input to filterable payload
Renames sparse_keywords to sparse_title (the vector now indexes only
the title text), adds a keyword index on the tags payload field, and
gives retrieve() an optional tags parameter that builds a query_filter
when set. Pre-filtering on the tags payload is faster and more precise
than mixing categories into BM25 lexical matching.

Updates the schema description bullets, the prefetch justification,
the intro failure-mode list, and the dataset framing to match the
new design. Drops avg_len from 15 to 10 to reflect title-only word
counts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 18:44:37 -04:00
Dylan CouzonandClaude Opus 4.7 8abae12a8c consolidate chunking note and remove open ends section
Moves the standalone chunking-strategy sentence into the Dataset
paragraph that already explains why we chunk, and drops the dedicated
Open Ends section. The chunking-method link list (POMA-AI VST, Jina,
Chonkie) goes away with the section, and the BM25F note is also
removed since the workaround it describes is what the tutorial
already demonstrates. Cleans up two stale step-number references in
Wrapping Up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 18:18:51 -04:00
Dylan CouzonandClaude Opus 4.7 a9610d2a30 restructure fusion section to cover four named strategies
Renames "How to Fuse" to "Which Fusion to Use" and expands it to
cover RRF (default), Weighted RRF, DBSF, and custom formulas as four
named options, with the FormulaQuery code block moved in from what
was the boosting section. Softens RRF framing from "stick with RRF
unless..." to "reasonable starting point; variants often do better
once you have an eval set." Adds the distribution-alignment
explanation in the custom-formula paragraph and links the in-repo
Decay Functions and Score Boosting references along with the RRF vs
DBSF FAQ entry.

The "When to Boost, When to Rerank" section now only covers true
boosting (recency, authority, decay) and reranking, and is reordered
to sit immediately after fusion so the ranking decisions stay
together. The "When to Group, When Not To" section moves to the end
as a presentation concern.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 17:33:32 -04:00
Dylan CouzonandClaude Opus 4.7 68cec300f2 set avg_len for BM25 ingestion and trim parameter notes
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>
2026-05-11 16:06:03 -04:00
Dylan CouzonandClaude Opus 4.7 376202a113 remove lookup_from references, point to with_lookup for payload splits
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>
2026-05-11 15:24:08 -04:00
Dylan CouzonandClaude Opus 4.7 433cae62a5 rename dense_summary to dense_abstract and explain chunking choice
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>
2026-05-11 15:03:52 -04:00
Dylan CouzonandClaude Opus 4.7 972568940d switch tutorial to qdrant cloud inference and core bm25
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>
2026-05-11 14:48:21 -04:00
Dylan CouzonandClaude Opus 4.7 300397b467 point hybrid search prerequisite at text search guide
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>
2026-05-11 14:32:47 -04:00
Dylan CouzonandClaude Opus 4.7 a5e4ef0532 Fix FAQ link to point at the relevance tutorial directly
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>
2026-05-11 12:08:02 -04:00
Dylan Couzon d21b5a5435 Merge pull request #2305 from qdrant/retrival-quality-guide-improvement
docs(tutorials): split retrieval-quality into three evaluation layers
2026-05-11 11:55:53 -04:00
Tim Visée c37393a17e Merge pull request #2298 from qdrant/version-1.18
Publish docs for version 1.18
2026-05-11 17:02:50 +02:00
Abdon Pijpelink cba308dc31 Fix tracing ID Python snippet import 2026-05-11 11:32:10 +02:00
Mohamed Arbi c3a3c1b0fd fix typos in hybrid-cloud and private cloud docs (#2343) 2026-05-11 08:46:00 +02:00
46e81449a8 Add TurboQuant quantization documentation (v1.18.0) (#2313)
* 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>
2026-05-11 08:13:03 +02:00
Bastian Hofmann 0abdaee413 Hugo and dependency updates (#2310)
* Adds a run script to easily serve the page locally
* Updates the Hugo version
* Updates deprecated fields
* Add version checks in the run and build scripts
* Update JS dependencies to fix CVEs
2026-05-07 15:49:20 +02:00
Abdon Pijpelink 506639965d Add Rust snippets for adding/removing named vectors 2026-05-07 10:25:37 +02:00
Abdon Pijpelink cb585a1fce Add TS snippets for adding/removing named vectors 2026-05-07 09:46:50 +02:00