qdrant
qdrant copied to clipboard
Conditionally update payload
Is your feature request related to a problem? Please describe. Currently, user needs to know exact list of point IDs to perform a payload update. (API https://qdrant.github.io/qdrant/redoc/index.html#operation/update_points)
But in some cases it might be useful to specify update condition - set payload only on those points, which passes the filtering condition.
Describe the solution you'd like
Create additional optional parameter in payload API - filtering conditions.
If this parameter is specified - instead of list of ids payload should be assigned to each point which satisfies filtering conditions.
ids should become optional as well, in this case.
Describe alternatives you've considered
Create a separate API for this type of update
Is the API referred to at https://qdrant.github.io/qdrant/redoc/index.html#operation/update_points, now the upsert points API at https://qdrant.github.io/qdrant/redoc/index.html#tag/points/operation/upsert_points?
With upsert i guess it now makes more sense to create a separate operation 'Update Points Conditionally' in the API?
For example, https://qdrant.github.io/qdrant/redoc/index.html#tag/points/operation/clear_payload have an option to select between point IDs and filter. I think all other relevant API should follow the same pattern
Something like this for e.g set_payload? #1192
If it looks alright i could go ahead and implement the other relevant API
Implemented in https://github.com/qdrant/qdrant/releases/tag/v0.11.5 , PR - https://github.com/qdrant/qdrant/pull/1249