10. An apparatus for a navigation system, the apparatus comprising: at least one processor; and at least one memory including computer program code for one or more programs; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to at least: receive a query text string representing a request for a geographic location from a user; obtain 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; compute 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; compute 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; compute a ranking score based on the text matching score multiplied by the usage pattern weight for each of the different geographic locations; rank the candidate information based on the ranking scores; and display 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.
11. The apparatus of claim 10 , the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to at least: provide the geographic location corresponding to a highest ranking score; receive a selection of the provided geographic location from the user; and increase the usage pattern weight for the provided geographic location that was selected.