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
This commit is contained in:
Debanjum Singh Solanky 2022-08-03 14:46:44 +03:00
parent 38df727ef4
commit 555c1088cc

View file

@ -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')