1. A method for efficient, interactive, and fuzzy search on text data comprising: using tree-based indexes to efficiently index the data; using an algorithm to traverse the tree as the user types in a query; adaptively maintaining the intermediate results for the query to support interactive, fuzzy search; and sorting the candidate results using ranking algorithms.