fn fts_phrase(search: &str) -> Option<String>Expand description
Convert a user search string into an FTS5 phrase query for the trigram
tokenizer. Returns None for empty/whitespace input. The result is wrapped
in double quotes (phrase match) with internal quotes doubled per FTS5 syntax.
Trigram tokenizer indexes substrings, so "foo" matches any row containing
“foo” as a substring in any indexed column.
Returns an FTS5 phrase for trigram MATCH, or None if the search is empty
or too short (trigram needs ≥3 chars). Callers must fall back to LIKE for
1–2 char searches.