Ако искате сами да изградите нещо подобно от нулата, бихте използвали нещо, наречено TF/IDF:честота на термините / инверсна честота на документа. Това означава, че за да го опростите значително, намирате думи в заявката, които са необичайни в корпуса като цяло, и намирате документи, които съдържат тези думи.
С други думи, ако някой въведе заявка с думите „Искам да купя слон“ в нея, тогава от думите в заявката думата „слон“ е може би най-рядко срещаната дума във вашия корпус. "Купете" вероятно е следващата. Така че класирате документите (във вашия случай предишните заявки) по това колко съдържат думата „слон“ и след това колко съдържат думата „купувам“. Думите "I", "to" и "an" вероятно са в списък за спиране, така че вие ги игнорирате напълно. Класирате всеки документ (предишна заявка, във вашия случай) по колко съвпадащи думи има (претегляне според обратната честота на документа – т.е. голямо тегло за необичайни думи) и показвате първите няколко.
Опростих твърде много и ще трябва да прочетете това, за да го разберете правилно, но наистина не е много сложно за прилагане по прост начин. Страницата в Уикипедия може да е добро място за начало:
http://en.wikipedia.org/wiki/Tf%E2%80 %93idf