That's a pretty cool idea though I don't think it has to be quite that complicated. I think you could probably get away with not storing the entire user's history but instead storing maybe the last 10 or so items. Then every time they search get the top keywords and save them in a more permenant location. The top words from your perminent location have the highest rank followed by all key words from the last 10. Feed all that to a site search and return the most relevent results.
Lobster Aliens Are attacking the world!