perf(ebook-search): run phrase detection in parallel with retrieval

Move protected phrase detection into the retrieval gather so it runs
concurrently with vector and BM25 candidates instead of sequentially
before them. Make the search API accept real bool form fields for
rerank/phrase_matching, gate phrase matching on both the request and
config kill switch, and reflow log f-strings for readability.
This commit is contained in:
Richie committed 2026-07-24 11:38:51 -04:00
1 parent 8f1a69529c
commit 0028237579
5 files changed
+113 -37

No files matched your search

+5 -4
View File
@@ -79,8 +79,9 @@ async def search(
engine: AppEngine,
client: AppHttpClient,
query: Annotated[str, Form()],
rerank: Annotated[str | None, Form()] = None,
phrase_matching: Annotated[str | None, Form()] = None,
*,
rerank: Annotated[bool, Form()] = False,
phrase_matching: Annotated[bool, Form()] = False,
) -> HTMLResponse:
"""Run a search and render HTMX results."""
try:
@@ -89,8 +90,8 @@ async def search(
client,
query,
config,
rerank=rerank == "true",
phrase_matching=phrase_matching == "true",
rerank=rerank,
phrase_matching=phrase_matching,
)
except Exception as error:
logger.exception("ebook_search_request_failed")