* docs(edge): add "Modify the Vector Schema" step to quickstart
Documents the new Edge 0.7 API for adding and removing named vector
fields on an existing shard without recreating it, with Python and
Rust snippets.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(edge): mention quantization support in quickstart
Adds a note after the EdgeConfig snippet that Edge supports all four
quantization methods (Scalar, Product, Binary, TurboQuant), with a
link to the quantization guide.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(edge): add On-Device BM25 page for Edge 0.7
New guide covering the built-in BM25 sparse embedder: configuring a
sparse vector shard, creating a Bm25/EdgeBm25 embedder, embedding and
upserting documents, and querying. Includes Python and Rust snippets.
Also adds the page to the Edge index navigation table.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(edge): add WAL segment size configuration to quickstart
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Upgrade code snippets to Edge 0.7.2
* Review feedback
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Initial commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Edits
* Edits
* Fix links
* Use 'true' instead of '1' in QDRANT__SERVICE__ENABLE_TLS example
* Review feedback
* Add link from Security page
* Update stack designation on overview page
* Update qdrant-landing/content/documentation/tutorials-operations/secure-qdrant.md
Co-authored-by: István Zoltán Szabó <szabosteve@gmail.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: István Zoltán Szabó <szabosteve@gmail.com>
Reconcile every step to the parents-only ancestry model (branch passed
separately), add docstrings with simplified filter results, hide full
filter code under <details>, and show storage state at the end of each
step. Also fix step 6 typos (models., Selector, result, "A") and the
shadowed loop variable.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Rewrite security page intro to be feature-forward
Replaces the generic opening paragraph with one that names each security
feature (API key auth, read-only keys, JWT RBAC, network binding, TLS,
audit logging) and links directly to their sections, so scanning readers
see the full capability surface before hitting the warning block.
Also updates the checklist items to surface read-only keys and JWT RBAC
as explicit options under Authentication.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add Security FAQ section to Qdrant Fundamentals
Adds three new Q&A entries covering default security posture, read-only
API keys, and JWT collection-scoped access control — the exact questions
users ask in Discord. Also adds Security to the page nav table and fixes
the heading depth on the collection-per-user entry (## → ###).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add Security section to production checklist
Inserts a new section 2 covering the five key security steps — API key
auth, read-only keys, JWT access control, TLS, and network binding —
with direct links to the Security page. Renumbers existing sections
2–4 to 3–5. Closes the gap where a user following the checklist
step-by-step could go to production with an open, unauthenticated instance.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Link production checklist from both quickstart pages
Adds a production checklist callout to the "Next Steps" section of the
local quickstart and a bullet to the "What's Next?" section of the cloud
quickstart, so users completing either tutorial have a clear path to
production readiness.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Make code snippets testable
* Lead Security page by listing all the features; Rename API keys->Admin API keys, and 'Granular Access Control with JWT' section into 'Granular Access API Keys'
* Update links
* Update meta description
* Fix C# snippet
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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>
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>
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>
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>