We’ve been using Langchain and Milvus for a chatbot project and it has been running fine. Recently we noticed that if Milvus is left overnight with a 2009 item collection, the queries fail with “failed to search: out of range in json: ef(10) should be larger than k(20))”.
I’ve been accessing Milvus with:
Setup the langchain access to Milvus as a retriever
milvusretriever = vector_store.as_retriever(search_kwargs={"k": 20, "ef":30})
So EF is large than top-K. Anyone any ideas what would cause Milvus to be working fine for hours and then do this? The only way to resolve is to re-create the collection, rebuilding the index doesn’t help.
Error message:
"MilvusException()Traceback (most recent call last):nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/runnables/base.py", line 2507, in invoken input = step.invoke(input, config)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/retrievers.py", line 221, in invoken raise ennn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/retrievers.py", line 214, in invoken result = self._get_relevant_documents(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain/retrievers/multi_query.py", line 169, in _get_relevant_documentsn documents = self.retrieve_documents(queries, run_manager)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain/retrievers/multi_query.py", line 207, in retrieve_documentsn docs = self.retriever.invoke(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/retrievers.py", line 221, in invoken raise ennn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/retrievers.py", line 214, in invoken result = self._get_relevant_documents(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain/retrievers/contextual_compression.py", line 44, in _get_relevant_documentsn docs = self.base_retriever.invoke(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/retrievers.py", line 221, in invoken raise ennn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/retrievers.py", line 214, in invoken result = self._get_relevant_documents(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_core/vectorstores.py", line 797, in _get_relevant_documentsn docs = self.vectorstore.similarity_search(query, **self.search_kwargs)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/milvus.py", line 663, in similarity_searchn res = self.similarity_search_with_score(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/milvus.py", line 736, in similarity_search_with_scoren res = self.similarity_search_with_score_by_vector(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/milvus.py", line 781, in similarity_search_with_score_by_vectorn res = self.col.search(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/orm/collection.py", line 799, in searchn resp = conn.search(nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/decorators.py", line 147, in handlern raise e from ennn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/decorators.py", line 143, in handlern return func(*args, **kwargs)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/decorators.py", line 182, in handlern return func(self, *args, **kwargs)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/decorators.py", line 122, in handlern raise e from ennn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/decorators.py", line 87, in handlern return func(*args, **kwargs)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py", line 801, in searchn return self._execute_search(request, timeout, round_decimal=round_decimal, **kwargs)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py", line 742, in _execute_searchn raise e from ennn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py", line 735, in _execute_searchn check_status(response.status)nnn File "/home/ubuntu/.local/lib/python3.10/site-packages/pymilvus/client/utils.py", line 63, in check_statusn raise MilvusException(status.code, status.reason, status.error_code)nnnpymilvus.exceptions.MilvusException: <MilvusException: (code=65535, message=fail to search on QueryNode 17: worker(17) query failed: => failed to search: out of range in json: ef(10) should be larger than k(20))>