1. A method for a navigation system, the method comprising: receiving a query text string representing a request for a geographic location from a user; obtaining candidate information data records representing stored locations from a geographic database stored on a computer readable medium, each of the candidate information data records comprising a record text string of a different geographic location; computing, by a processor, a text matching score for each of the different geographic locations, wherein the text matching score indicates a degree of match between the query text string and each of the different geographic locations; computing, by the processor, a usage pattern weight for each of the different geographic locations, wherein the usage pattern weight represents a frequency that users have previously selected a corresponding geographic location; computing, by the processor, a ranking score (s) based on a product of the text matching score (s f ) and the usage pattern weight (w(f)) for each of the different geographic locations according to s=s f *w(f); ranking the different geographic locations based on the ranking scores; and displaying the different geographic locations according to the ranking scores, wherein said usage pattern weight is determined using historic crowd sourcing or real time crowd sourcing.