Exploiting Semantic Locality To Improve Peer-To-Peer Search Mechanisms