let me clarify:
1. search results are supposed to be based on the search text, so looking for two distinct searches should result in different results
2. the hash codes are used for the actual transfer. once you start downloading a file you will get different files which have the same size and hash code. this is what enables you to rename a file and still share it. thus once you select a file from a search result its file name is meaningless, and the sharing is only based on the hash code (possibly with file size as well).
the way the fake files take advantage of the system is by replying to every search with a text containing the keywords pointing to a fake file (usually porn and gambling).
Additionally they make sure their results have the most sources. I don't know if they trick the system by sending multiple answers, or if their file really exists many times in the mule network. Either way they are always on the top of the list.
As an example I entered the following two global searches:
1. "knocking on heavens door"
2. "barak obama biography"
You'd expect very few (if any) similar results, but if you sort both search results according to the number of sources you'd find the same hash codes appearing in both lists.
My proposal has to do with using random but highly probable key words in two initial searches, and filtering out the matching results.
A more extreme measure would be to stop sharing the files with that hash code, thus even if someone downloaded one of those files, he/she will not be using network resources sharing it.