1. In a computing environment, a method comprising: processing a data store of geographic search requests, each geographic search request comprising query terms previously submitted by a user, from a user location, and being represented by an object having type data and location data, the type data being indicative of a keyword contained in the geographic search request and identifying a subject matter of the geographic search request, and the location data specifying a search location contained in the geographic search request, the search location being independent of the user location from which the user submitted the geographic search request; identifying one or more co-located patterns in the geographic search requests by determining whether different objects, each of the different objects representing a different one of the geographic search requests, have different type data and comprise a co-located pattern in a given region based on how often geographic search requests represented by sets of the different objects occur in the data store and have location data that specifies locations within a threshold geographic distance of one another; storing the identified co-located patterns, each identified co-located pattern associating a set of keywords from a plurality of the geographic search requests in the data store; and generating search results for an input geographic search request, comprising: determining that the given region is identified by location data in the input geographic search request; matching a keyword in the input geographic search request to a first keyword in a given one of the identified co-located patterns for the given region; and generating the search results based at least in part on a second keyword identified from the given co-located pattern.