Jeśli chciałbyś zbudować coś takiego sam od podstaw, użyjesz czegoś, co nazywa się TF/IDF:Term Frequency / Inverse document frequency. Oznacza to, że w ogromnym uproszczeniu można znaleźć w zapytaniu słowa, które są rzadko spotykane w całym korpusie i znaleźć dokumenty zawierające te słowa.
Innymi słowy, jeśli ktoś wpisze zapytanie ze słowami „Chcę kupić słonia”, to z tych słów w zapytaniu słowo „słoń” jest prawdopodobnie najmniej powszechnym słowem w Twoim korpusie. „Kup” jest prawdopodobnie następny. Więc klasyfikujesz dokumenty (w twoim przypadku poprzednie zapytania) według tego, ile zawierają słowo „słoń”, a następnie, ile zawierają słowo „kup”. Słowa „ja”, „do” i „an” prawdopodobnie znajdują się na liście stop, więc całkowicie je ignorujesz. Uporządkowujesz każdy dokument (poprzednie zapytanie, w Twoim przypadku) według liczby pasujących słów (ważenie według odwrotnej częstotliwości dokumentu – tj. wysoka waga nietypowych słów) i pokazujesz kilka pierwszych.
Zbytnio uprościłem i trzeba by o tym przeczytać, aby to zrobić dobrze, ale tak naprawdę nie jest to strasznie skomplikowane do zaimplementowania w prosty sposób. Dobrym miejscem na rozpoczęcie może być strona Wikipedii:
http://en.wikipedia.org/wiki/Tf%E2%80 %93idf