Closed binbinlv closed 3 months ago
/assign @czs007
/unassign
File "/home/czs/pymilvus/pymilvus/decorators.py", line 143, in handler return func(*args, kwargs) File "/home/czs/pymilvus/pymilvus/decorators.py", line 182, in handler return func(self, *args, *kwargs) File "/home/czs/pymilvus/pymilvus/decorators.py", line 124, in handler raise e from e File "/home/czs/pymilvus/pymilvus/decorators.py", line 87, in handler return func(args, kwargs) File "/home/czs/pymilvus/pymilvus/client/grpc_handler.py", line 820, in hybrid_search search_request = Prepare.search_requests_with_expr( File "/home/czs/pymilvus/pymilvus/client/prepare.py", line 612, in search_requests_with_expr elif isinstance(data[0], bytes): IndexError: list index out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "hybrid_search3.py", line 44, in )>
it is client raised excpetion
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Rotten issues close after 30d of inactivity. Reopen the issue with /reopen
.
I got the same error, how to resolve?
@czs007 is this still a issue?i'm assuming this is becasue some parameter wrong ?
search_param_dense = { "data": dense_embeddings, "anns_field": "dense_vector", "param": { "metric_type": "COSINE", "params": {"nprobe": 10} }, "limit": 100 # TODO hybrid search bug https://github.com/milvus-io/milvus/issues/32288 } search_param_sparse = { "data": sparse_embeddings, "anns_field": "sparse_vector", "param": { "metric_type": "IP", "params": {"nprobe": 10} }, "limit": 100 # TODO } I used to set the limit to col.num_entities, it was 24007. and it says the range should be within [1, 16835].
@xxxfzxxx please try the latest 2.4.4 pymilvus
For a search, the limit indeed cannot exceed 16484.
Is there a reason?
@xxxfzxxx The conventional search lacks an iterative interface. We incorporate a limit constraint to avoid returning an excessive amount of data at once, thus preventing OOM (Out of Memory) errors.
Has the issue mentioned in the error message been resolved after upgrading pymilvus?
"Has the issue mentioned in the error message been resolved after upgrading pymilvus?"
NO.
I don't understand what is the difference between limit: 10 and limit: 1000. Because you will eventually calculate the similarity scores across all entities and select top 10, or top 1000. Why the limit matters here?
I am using a hybrid search, I would like to search across all entities and find the top k by a WeightedRanker(0.4, 0.6). But, if I limit 10, sometimes the retrieved "sparse" entities are not overlapped with the "dense" entities. Then how to address this case?
you can user range search to get more vector
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Rotten issues close after 30d of inactivity. Reopen the issue with /reopen
.
Is there an existing issue for this?
Environment
Current Behavior
Unexpected error when "reqs" is an empty list for the interface "hybrid_search"
Expected Behavior
Report milvus error rather than unexpected error
when input the (maximum+1) value for nq, it report error "(code=65535, message=nq [16385] is invalid, nq (number of search vector per search request) should be in range [1, 16384], but got 16385"
It is better to keep the same error when nq = 0 (smaller than the maximum value 1)
Steps To Reproduce
Milvus Log
No response
Anything else?
No response