feat: implement upsert_documents() method for Index and IndexAsyncio#594
Closed
jhamon wants to merge 1 commit intojhamon/sdk-111-implement-search_documents-methodfrom
Closed
Conversation
Add the upsert_documents() method to enable upserting flat JSON documents into a namespace. Documents are indexed based on the configured index schema and must have an _id field. - Add upsert_documents() to Index class (sync) - Add upsert_documents() to IndexAsyncio class (async) - Add method signature to IndexInterface and IndexAsyncioInterface - Add comprehensive unit tests for validation and API calls Relates to: SDK-112
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.
Summary
Add the
upsert_documents()method to theIndexandIndexAsyncioclasses for upserting flat JSON documents into a namespace._idfieldmy_vector) or use the reserved_valueskeyfull_text_searchable: trueUsage Example
Async Example
Test Plan
Related
Note
Medium Risk
Medium risk because it introduces a new public write-path hitting the document upsert API and adds fallback behavior when the server omits
upserted_count, which could mask partial failures if the backend response shape differs.Overview
Adds a new
upsert_documents()method onIndexandIndexAsyncioto upsert flat JSON documents into a namespace via the document operations API.The method validates inputs (
namespacerequired, non-emptydocuments), builds aDocumentUpsertRequest, and returns anUpsertResponsewith extracted_response_infoandupserted_count(falling back tolen(documents)if the server doesn’t provide a count).Updates the sync/async interfaces to include the new method and adds unit tests covering request creation, validation, API invocation, and the count fallback behavior.
Written by Cursor Bugbot for commit b9c532b. This will update automatically on new commits. Configure here.