Filter
Narrow a known set by exact-match criteria. “Show me tasks assigned to me with status open.” Use indexed Convex queries.
Full-text
Find by keyword in text fields. “Tasks containing ‘Q2 report’.” Use Convex full-text search.
Semantic / vector
Find by meaning, not exact words. “Tasks about end-of-quarter reporting.” Use Convex vector search.
Decision tree
1
Are you matching exact values? (status = open, assignee = me)
Filter. Indexed
where clauses.2
Are you matching keywords in text? (titles, body, descriptions)
Full-text search.
3
Do you want results that are conceptually related, not just keyword-matched?
Vector search (with embeddings).
Combining
Many UIs combine all three:- A search bar (full-text on
title+body) - Filter pills (filter by status, assignee, priority)
- An “Ask in natural language” mode (vector search for conceptual queries)
Filter UI patterns
Pill filters
Click pills to toggle filters. Active filters visible as chips above the list.
Sidebar filters
Persistent filter panel. Best for data-heavy UIs (admin, analytics).
Inline command
A cmdk-style command bar. Power-user feel; takes practice.
URL query params
Persist filter state in the URL so it survives refresh and is shareable.
Tips
Related
Full-text search
Convex implementation.
Vector search
Semantic implementation.
Algolia
Hosted search alternative.
