I am a .NET WinForms/ASP.NET developer with what I think of as technology agnostic questions about how to implement "type-ahead auto-completion" on a large data set. If someone could point me to a reference implementation or detailed discussion, that would be great, but here are my questions:
Presumably, the user starts typing and, after some interval, the client asks the server for data to do the type ahead. Is there a rule of thumb for how long that interval is? Does this rule of thumb change as the dataset to search grows? What if the user starts typing again but the previous query has not completed because of the size of the dataset?
What query strategies are used to pull the dataset? Obviously, the query must be asynchronous, but it is not a simply SQL "%search term%" is it? What text matching strategies are used? How rigorously is that dataset cached? What if it is too big to cache?
Are there any different strategies to consider when we are talking about a web client using AJAX versus a thick-client desktop app?
At some point I will look at specific .NET implementations, but I am more interested in the strategies at this stage.