feat: bfb update-collection#157
Closed
tellet-q wants to merge 1 commit into
Closed
Conversation
tellet-q
force-pushed
the
feat/timed-field-index-creation
branch
from
July 16, 2026 08:05
883eef8 to
3af4fda
Compare
tellet-q
force-pushed
the
feat/update-collection
branch
from
July 16, 2026 08:05
d5162d6 to
d2818ea
Compare
bfb update-collection; patch settings and measure the indexing it triggersbfb update-collection
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new bfb update-collection subcommand to apply a partial, YAML-defined collection settings patch to an existing Qdrant collection, then (optionally) wait for and measure the indexing work that the patch triggers—mirroring how bfb upload reports indexing waits.
Changes:
- Introduces
update-collectionCLI plumbing and JSON result reporting (results.update_collection, with triggered indexing underresults.index). - Adds a YAML “patch” config format where all fields are optional, so only declared keys are sent to the server.
- Documents the new workflow and adds an example update config file.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/results.rs | Adds UpdateCollectionPhase and wires it into the per-phase JSON results structure. |
| src/main.rs | Implements run_update_collection and dispatches the new subcommand. |
| src/config/update.rs | New YAML patch config schema + validation (rejects patches that declare no fields) + unit tests. |
| src/config/mod.rs | Exposes the new config::update module. |
| src/collection/mod.rs | Implements the Qdrant update_collection call builder and reporting of the patch operation. |
| src/args/mod.rs | Adds the UpdateCollection subcommand and its --file argument. |
| README.md | Documents update-collection behavior, outputs, and JSON fields. |
| examples/update-config.yaml | Provides an example patch file for common benchmark workflows. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+236
to
+241
| let started = Instant::now(); | ||
| let response = client.update_collection(builder).await?; | ||
| let duration_secs = started.elapsed().as_secs_f64(); | ||
|
|
||
| println!("Updated collection: {}", changed.join(", ")); | ||
| println!("Server reported changes: {}", response.result); |
…g it triggers Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tellet-q
force-pushed
the
feat/update-collection
branch
from
July 16, 2026 08:17
d2818ea to
7cddfea
Compare
tellet-q
force-pushed
the
feat/timed-field-index-creation
branch
from
July 16, 2026 08:18
9ce4163 to
2e2e98a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note: base is not dev! Only merge after #156
Apply a partial collection-config patch and wait for the optimization — a common benchmark shape.
Only declared keys are sent — undeclared ≠ false/0, so the rest of the config is left alone. The patch request returns before the work finishes, so this waits and reports it the way bfb upload does: the patch lands under results.update_collection, the triggered indexing under results.index. A no-op patch is an error, not a silent success; --skip-wait-index fires and returns without waiting.