Finding records.
WHAT SIMPLE SEARCH LOOKS LIKE
Matching against columns with a pattern.
WHY THAT IS LIMITED
It cannot use indexes effectively when matching within text, so it slows badly as data grows.
WHAT TO USE INSTEAD
Database full-text indexing, where available A dedicated search service, for larger applications
WHAT THE FRAMEWORK PROVIDES
An abstraction over search services, with a driver using the database for simple cases.
WHAT MATTERS FOR USABLE SEARCH
Tolerance of misspellings Partial matches Relevance ordering Synonyms for terms your users actually use
THAT LAST POINT
People search for what they call things, not what you call them.
WHAT TO RECORD
What people searched for What returned nothing
WHY
It shows what people expect to find and what vocabulary you are missing.
WHAT TO SHOW WHEN NOTHING MATCHES
Suggestions, not an empty page.
WHAT TO PAGINATE
Results, always.
WHAT TO TEST
Search with realistic data volume.