What type of search indexes and approach should be worked on for a website with city(&locality) based search for a keyword ,?
===

Ex: JustDial.com

I have worked this out : 
1) Index the keywords for which I have records. 

2) For those keywords store the cities it is applicable to .(ex: listings for chinese restaurants  is applicable in London , New York and Paris on my web site ) . 

3) For the given cities search their particularly city's table records using keywords(records are again indexed as per locality and keyword ) . 

However , here lies the problem of changing city center . I need to display all locality listings depending on user's localities's distance from all other localities in the city . This would mean storing the distance between localities for each locality . Mind that this distance or arrangement between localities is stored in another table . 

So we have : One indexing for keywords 
Match the city provided by the user 
For that cities table (having a double index based on keyword and locality) find out valid records using keyword indexing .

Order the results as per a third table maintaining the distance between localities . 

Please let me know if the solution is correct considering performance and scalability as a consideration . 