The core algorithmic problem Ordinary Inverted Index Searching with Autocompletion cool algorithms for a cool feature Holger Bast bast@mpi-inf.mpg.de For the query adfocs rag all words are displayed that start with rag and that occur in a document that also contains a word starting with adfocs. This list of completions is updated with every new letter you type! Please try it yourself on the MPII homepage. Type a ? for help before you start searching! The list of top hits is also updated with every new letter you type. It is often surprising how little one has to type to get to what one was looking for! The core algorithmic problem Given a range of words W (all completions of the last word the user has started typing) and a set of documents D (the hits of the preceding part of the query), compute the subset W' ⊆ W of words that occur in at least one document of D and the subset D' ⊆ D of documents containing a word from W'. Our new data structure ~ |W'| time per query typically |W'| << |W| Ordinary Inverted Index ~ |W| time per query D C B A A-D A-B C-D ADA B AA B 1110101101 00110001000001 B B B 1010010 111 CDDC 0001111 0110 000 0000 1000 Doc 1 A B Doc 2 D Doc 3 Doc 4 - Doc 5 B C D Doc 6 Doc 7 A D Doc 8 A B D Doc 9 Doc10 B C A: 1,3,7,8 B: 1,3,5,8,10 C: 5,10 D: 2,5,7,8