This is a table a made for myself after investigating the best way to implement autocomplete for our app:
differentiate between Query Suggestion and Search
UseCase | Completion S. | Context S. | Term S. | Phrase S. | search_as_you_type | Edge N-Gram |
---|---|---|---|---|---|---|
Basic Auto-Complete | X | X | X | X | ||
Flexible Search/Query | X | X | ||||
High Performace for Large Datasets | X | X | X | X | ||
Higher Memory Usage | X | X | X | |||
Higher Storage Usage | X | X | ||||
Substring Matches | X | X | ||||
Dynamic Data Updates | X | X | X | X | ||
Relevance Scoring | X | X | X | X | ||
Spell Correction | X | X | ||||
complexity to implement | low | high | medium | high | low | medium |
Speciality | fast prefix matching | context-aware suggestions | single term corrections | multi term corrections | implements edge n-gram, full text partial matching |