| Algorithm 2 Query Encoding for Retrieval |
| Require: query q, embedding meta meta, model name M, flags NormalizeSQL, MaskPII Ensure: query vector z ∈ Rd 1: q' ← NormalizeGeneric(q, NormalizeSQL, MaskPII) 2: if meta.type = st then 3: z ← SentenceTransformerEncode(M, q') 4: z ← L2Normalize(z) 5: else if meta.type = tfidf then 6: Xc ← meta.vec_char.transform(q') 7: Xw ← meta.vec_word.transform(q') 8: X ← [Xc; Xw] ▷ concatenate sparse features 9: X ← L2Normalize(X) 10: z ← ToDense(X) 11: end if 12: return z |