From b4ca918125c4b5316f1d04d71d19f868a3b3440c Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Fri, 3 Apr 2026 14:35:14 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=B2=A1=ED=84=B0=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=20asyncpg=20=EC=BA=90=EC=8A=A4=ED=8A=B8=20=E2=80=94=20::vector?= =?UTF-8?q?=20=E2=86=92=20cast(:embedding=20AS=20vector)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- app/api/search.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/api/search.py b/app/api/search.py index cdcdf09..a8e107a 100644 --- a/app/api/search.py +++ b/app/api/search.py @@ -120,12 +120,12 @@ async def _search_vector(session: AsyncSession, query: str, limit: int) -> list[ result = await session.execute( text(""" SELECT id, title, ai_domain, ai_summary, file_format, - (1 - (embedding <=> :embedding::vector)) AS score, + (1 - (embedding <=> cast(:embedding AS vector))) AS score, left(extracted_text, 200) AS snippet, 'vector' AS match_reason FROM documents WHERE embedding IS NOT NULL - ORDER BY embedding <=> :embedding::vector + ORDER BY embedding <=> cast(:embedding AS vector) LIMIT :limit """), {"embedding": str(query_embedding), "limit": limit},