|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  import json
 | 
	
		
			
				|  |  |  import logging
 | 
	
		
			
				|  |  | +import math
 | 
	
		
			
				|  |  |  from typing import Any, Optional
 | 
	
		
			
				|  |  |  from urllib.parse import urlparse
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -112,7 +113,8 @@ class ElasticSearchVector(BaseVector):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def search_by_vector(self, query_vector: list[float], **kwargs: Any) -> list[Document]:
 | 
	
		
			
				|  |  |          top_k = kwargs.get("top_k", 10)
 | 
	
		
			
				|  |  | -        knn = {"field": Field.VECTOR.value, "query_vector": query_vector, "k": top_k}
 | 
	
		
			
				|  |  | +        num_candidates = math.ceil(top_k * 1.5)
 | 
	
		
			
				|  |  | +        knn = {"field": Field.VECTOR.value, "query_vector": query_vector, "k": top_k, "num_candidates": num_candidates}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          results = self._client.search(index=self._collection_name, knn=knn, size=top_k)
 | 
	
		
			
				|  |  |  
 |