1. A method comprising: maintaining relationship data describing relationships between data objects in a collection of data objects; identifying search results for a set of query terms, each result of the search results being a subset of related data objects within the collection, the subset comprising, for each particular term of the query terms, at least one data object that matches the particular term; wherein identifying the search results comprises: identifying groups of initial data objects to investigate for the search results, the groups including at least a first group matching a first query term, a second group matching a second query term, and a third group matching a third query term; based on how often certain initial data objects appear both in the first group and the second group, removing, from the groups, initial data objects that are not found within both the first group and the second group; identifying particular subsets of related data objects within the collection by, based on the relationships, expanding networks of related data objects from the remaining initial data objects; determining which of the particular subsets qualify as the search results.