Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Batch recommend request fails if one or multiple points are not in the DB #4048

Open
amey-wynk opened this issue Apr 16, 2024 · 2 comments
Open

Comments

@amey-wynk
Copy link

Batch recommend request fails if one the points in positive is not found in qdrant. If I need to find neighbours for 10 points and I use the batch query I get a response consisting of the nearest neighbours of these 10 points. However if one of these 10 points is not in the DB, then the entire request fails instead of returning neighbours for 9 points and failing for that one point.

Current Behavior

The request returns:
UnexpectedResponse: Unexpected Response: 404 (Not Found)
Raw response content:
b'{"status":{"error":"Not found: No point with id xyz found"},"time":0.002222669}'

Steps to Reproduce

  1. Ingest 10 vectors into qdrant.
  2. Query neighbours for 11 points with one made up point that is not ingested into qdrant
  3. Response gives 404 status

x = [1,2,3,4,5] # point 5 does not exist in qdrant
query = [RecommendRequest(positive = [x], limit = 10) for x in ids]
client.recommend_batch('collection', query) # this request breaks

Expected Behavior

Response should be generated by returning neighbours for points [1,2,3,4] and fail for 5.

Context (Environment)

Trying to build a real time vector search api where requests may have ids that havn't been ingested into qdrant and want to handle those requests gracefully.

@amey-wynk amey-wynk added the bug Something isn't working label Apr 16, 2024
@generall
Copy link
Member

Hey @amey-wynk, this is an expected behaviour, not a bug.
If you think the behavior should be different, please consider making a feature request instead.

There are also similar issues which might be relevant #2313

@amey-wynk
Copy link
Author

Thanks for the response @generall

Went through the issue thread you linked. Imo it is not ideal to make a network call just to validate points and then another call to fetch neighbours. This cannot be asynced and would unnecessarily increase latency. The first option discussed on that thread to ignore absent points sounds like the best possible solution.

Could you change the label of this issue to enhancement/feature request?

@generall generall removed the bug Something isn't working label Apr 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants