We describe a range of designs for supporting rich search queries in a peer-to-peer network. Our implementation is based upon
uniquely identified data objects which are replicated upon request by agents called Shepherds. Several abstract data structures
are built upon this framework, supporting dataset management, lexical search, and distributed GIS interfaces in an application
called the Geobrowser. Our results demonstrate that it is possible to layer higher-level data structures upon a basic peer-to-peer
transport and replication layer. When users perform a given query, parts of the index as well as the query results themselves
are shepherded to the user’s local venue. A natural benefit of this approach is that mobile users can repeat previous searches
if they become disconnected from the rest of the network. Some of the data structures that prove to be successful are peer-to-peer
adaptations of traditional indexing structures. We review some of the properties that lead to successful designs in this domain,
giving examples of deployed systems in the Geobrowser.
An erratum to this chapter can be found at http://dx.doi.org/10.1007/11914952_55.