It sounds to me like you want to read Building a Vector Space Search Engine in Perl
However one tip. Take a look at Amazon. The key to what they do is they look at purchase patterns. If someone buys X and Y, and someone else has just bought X, then recommend Y to them. The words in the name are unlikely to be a good indicator of what else they might like. But odds are that their tastes are similar to someone else who just bought the same thing.
I haven't thought about how to implement that, but were I you I would let the idea sit, and start thinking about what I need to track about people to do that.