Search::Mousse is a simple and fast inverted index that I use for my website. Why write my own? Because it has special features that I need, and it needs to be fast on old hardware. You can add documents with keywords and then search using keywords (eg all orange photos and recipes). But recently it's had some feature creep.
One of the new features is related items. By looking at the keywords, we can guess what items are similar to the item you are looking at. So a photo of a birthday girl with cake has related photos which are the birthday girl and the cake, and a recipe of Chili orange oil has related recipes which are various other oils (some with orange).
clkao has been trying to find some blood in London to make soup, and was trying to find recipes by searching for blood. As you can see, blood oranges are distracting. So, with a little help from Search::QueryParser and Set::Scalar, I added more search features so that he can finally search for blood -orange. (Amusingly, one of the hits is blood 0range with a zero).
And that's today's module! Tell me if you find it interesting. If you need something more general, I'd go for Plucene or the newcomer Search::Kinosearch or maybe even let your database do the work...
No, no, no, focus!