Web services are increasingly hosted on peer to peer networks, to facilitate resource sharing and cooperation. In these settings, each peer hosts a set of services which can be invoked by other peers of the network through a service query. In a pure peer to peer network, it might not be possible to maintain directory for publishing the services, rather, the peers need to search for the required service through query forwarding in the network. For such non-directory based peer to peer networks, in this paper, we introduce an efficient and fully decentralized policy-compliant search query routing method for service discovery. Our main goal is to protect the search query from traversing unwanted peers in the network, while achieving service discovery. To this end, we design and develop a policy-driven approach that allows distributed searches through service queries taking into account any security, routing or other functional criteria a peer may have with respect to routing a query. We have developed a prototype of the query protection and search protocol, and tested it on large networks. Our tests demonstrate accuracy and efficient execution times.