fix(search): trigram % operator escape 수정 (%% → %)
SQLAlchemy text() + asyncpg dialect에서 trigram operator 위치의 %%는 unescape 안 되어 'text %% unknown' 에러 발생. 단일 %로 변경. ILIKE의 string literal 안의 %%는 PostgreSQL에서 두 wildcard로 동작했으나, operator 위치는 escape 처리 경로가 다름.
This commit is contained in:
@@ -48,14 +48,14 @@ async def search_text(
|
||||
WITH candidates AS (
|
||||
-- title trigram (idx_documents_title_trgm)
|
||||
SELECT id FROM documents
|
||||
WHERE deleted_at IS NULL AND title %% :q
|
||||
WHERE deleted_at IS NULL AND title % :q
|
||||
UNION
|
||||
-- ai_summary trigram (idx_documents_ai_summary_trgm 부분 인덱스 매치)
|
||||
SELECT id FROM documents
|
||||
WHERE deleted_at IS NULL
|
||||
AND ai_summary IS NOT NULL
|
||||
AND length(ai_summary) > 0
|
||||
AND ai_summary %% :q
|
||||
AND ai_summary % :q
|
||||
UNION
|
||||
-- FTS 통합 인덱스 (idx_documents_fts_full)
|
||||
SELECT id FROM documents
|
||||
|
||||
Reference in New Issue
Block a user