From da2de21339d93dc5a12d94ccd03508066903cc08 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 29 Jun 2023 14:49:05 -0700 Subject: [PATCH] Only return requested result count even if search in multiple content types - Set results_count to default value at start so it is an int, never None --- src/khoj/routers/api.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/khoj/routers/api.py b/src/khoj/routers/api.py index 9069418b..96d98b7a 100644 --- a/src/khoj/routers/api.py +++ b/src/khoj/routers/api.py @@ -155,7 +155,7 @@ async def search( # initialize variables user_query = q.strip() - results_count = n + results_count = n or 5 score_threshold = score_threshold if score_threshold is not None else -math.inf search_futures: List[concurrent.futures.Future] = [] @@ -296,15 +296,15 @@ async def search( image_names=state.model.image_search.image_names, output_directory=output_directory, image_files_url="/static/images", - count=results_count or 5, + count=results_count, ) else: hits, entries = await search_future.result() # Collate results - results += text_search.collate_results(hits, entries, results_count or 5) + results += text_search.collate_results(hits, entries, results_count) - # Sort results across all content types - results.sort(key=lambda x: float(x.score), reverse=True) + # Sort results across all content types and take top results + results = sorted(results, key=lambda x: float(x.score), reverse=True)[:results_count] # Cache results state.query_cache[query_cache_key] = results