From 555c1088cc089d7ea952cc90394aa7a613b191d7 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Wed, 3 Aug 2022 14:46:44 +0300 Subject: [PATCH] Cache queries in /search controller using LRU cache - Most concretely right now, it eliminates the re-rank latency hit on re-rank triggered on user hitting enter after re-rank is already done on user idle in the emacs interface - Improves search latency of (incremental) search --- src/main.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.py b/src/main.py index 12ead67b..6fa89d6e 100644 --- a/src/main.py +++ b/src/main.py @@ -3,6 +3,7 @@ import sys, json, yaml import time from typing import Optional from pathlib import Path +from functools import lru_cache # External Packages import uvicorn @@ -62,6 +63,7 @@ async def config_data(updated_config: FullConfig): return config @app.get('/search') +@lru_cache(maxsize=100) def search(q: str, n: Optional[int] = 5, t: Optional[SearchType] = None, r: Optional[bool] = False): if q is None or q == '': print(f'No query param (q) passed in API call to initiate search')