I found one by Human Logic (http://moodle.org/mod/forum/discuss.php?d=39148), but i couldn't get it to work.
I've been thinking about a Moodle search engine as well. An ordinary search engine (eg Google) is no good, because Moodle's pages don't actually exist! They're nailed together on the fly from database queries and text strings from the language packs, so when a search engine tries to spider the site it doesn't find anything.
A Moodle search engine would have to be effectively a query on the various tables in the database. It occurs to me that the basic machinery for doing this already exists, because all Moodle pages are the results of queries. When you go to a page the script queries the database and returns a result on the basis of what course you're on, what level of access you've got (student, teacher, etc) and so on, and then assembles the page from that result and the language strings. It should be possible to run a similar query based on keywords entered by the user, and still filter the results based on course, access level, etc. This would mean that, for example, the results of a query run by a student wouldn't include teacher stuff, and so on.
Unfortunately although I can see the general principles of doing it, it's beyond my knowledge of PHP and the way Moodle is constructed, so I can't actually do it! I've posted a bug report/feature request making the above points, though, so hopefully when the developers have time (when they've added the ten million other features we've asked for!) it might get addressed.
We may stitch in a fairly clumsy document search function which will achieve what we need but definitely be inelegant.