Pokud byste chtěli něco takového postavit sami od začátku, použili byste něco, co se nazývá TF/IDF:Term Frequency / Inverse Document Frequency. To znamená, že pro enormní zjednodušení najdete v dotazu slova, která jsou v korpusu jako celku neobvyklá, a najdete dokumenty, které tato slova obsahují.
Jinými slovy, pokud někdo zadá dotaz se slovy „chci si koupit slona“, pak ze slov v dotazu je slovo „slon“ pravděpodobně nejméně rozšířeným slovem ve vašem korpusu. "Koupit" je pravděpodobně další. Takže dokumenty (ve vašem případě předchozí dotazy) seřadíte podle toho, jak moc obsahují slovo „slon“ a poté, jak moc obsahují slovo „koupit“. Slova „já“, „do“ a „an“ jsou pravděpodobně na seznamu stop, takže je úplně ignorujete. Každý dokument (ve vašem případě předchozí dotaz) seřadíte podle počtu odpovídajících slov (váha podle inverzní frekvence dokumentu – tj. vysoká váha pro neobvyklá slova) a zobrazíte několik nejlepších.
Zjednodušil jsem to a budete si to muset přečíst, abyste to pochopili správně, ale implementace jednoduchým způsobem opravdu není příliš složitá. Stránka Wikipedie může být dobrým místem, kde začít:
http://en.wikipedia.org/wiki/Tf%E2%80 %93idf