How Searches work
From PhexWiki
Search requests in Phex run only, as long as they didn't generate enough results (dynamic querying). The % slowly increases nontheless (the cut-off line should be somewhere around 200-300 results.
Also, the additional results you see after stopping are those which other clients send in who get your search request.
Stopping the search stops Phex from sending out new requests, but it doesn't stop others from replying to already sent requests, and Phex doesn't throw away results (except clear spam or when requested by the user or a defined and active rule).
Spam creates a problem in current Gnutella though: The Dynamic Querying protocol stops the searches after about 300 results came in, but its designers didn't take spam into account (at least not the massive amount existing today - back then 3 spam answers on a request were normal, today rare queries often generate hundreds, since companies pay people to spam).
- Dynamic Querying explained at Gnutella For Users
Combine that, and rare searches (which would only generate 5 or 6 real hits in the whole network) stop after receiving 300 spam results, but no useful result.
So we need an efficient spam filter to make Gnutella run smoothly again.
Dynamic Querying is still being used, though, because it provides about 90% bandwidth savings and in theory supports rare searches as well as popular searches.
- Arne


