A hash for anagram searching and suffix tree for partial seraching