AutoComplete word "search" engine. Connects to redis and exposes 2 APIs (using Flask): "Store" a given word and "Suggest" a completion for a given word. gui.py contains a preview of how to use those apis + example of storing words from csv is found in main.py.
Suggest takes 12~ ms for receiving a word with redis containing 330K words + score. Storage is implemented as a variance of reverse index on redis, when all prefixes of a word is indexed as Prefix -> word. For example, storing "Rocky" will result in: "_R->Rocky", "_Ro->Rocky", "_Roc->Rocky", "_Rock->Rocky", "_Rocky->Rocky"