Searching in P2P Networks: A Survey