If you tweak the search box so it doesn't do anything until you've typed at least 2 or 3 letters, you could then serve regenerated son files that only contain that matches that have that prefix... No need for any of the json payload for words/phrases starting with aa..rt if someone's typed "ru" into the search box.
That means you'd have 676 distinct json files, but you'd only ever load the one you need...
Seems to me that often, though not always, this network request would happen whilst the user is typing — say, busy typing chars 3, 4 and 5. That the netw req won't be noticeable for the human
And, if typing more chars, or backspace-deleting to fix a typo ... no netw request required.
And the same scenario, if typing a 2nd word.
I'm guessing in like 90% of the cases, it'll seem as if there was never a netw req.
I'm continually amazed at how featureful SQLite is.
https://gist.github.com/inexorabletash/a279f03ab5610817c0540...