I'm deploying an instant search on my Windows app. At the first implementation, when the user types a key, the search engine makes a query and returns the results. I thought that that wasn't too efficient, because when the user wants to search for a long word, each character makes a query, so I made the search start a bit delayed, to let the user write the full word before it starts to query and loads the results in the table. More efficient, less glitch when the rows are reloaded.
Is this a good practice anyway? Is there any convention about it? I'm seeking for a case study about how much milliseconds that delay should be, but I didn't find anything. A short one, and the application will make a lot of queries when the user types slowly. A long one, and the user will perceive the application as slow in loading data.