Dynamic fields query yield incorrect results?

I have the following query with the results in this pastebin:
http://pastebin.com/g2Bm6y7P
General purpose: search engine for places (like nominatim)
Problem:
Seems like the third results is the best to me and I would want it to be the first.
I what to achieve the following:

  1. Allow fuzziness in the search
  2. Search in the fields with the name: "parameters.name", "parameters.name*", "parameters._name"
  3. I want to match the closest word - if I searched for a single word the best results should also be that single word event if there is a second word that looks similar in terms of fuzziness.

I think the following is not what happening but this is what I want (pseudo code):

  1. Get the score for every field given (after interpreting what is * in this context)
  2. find the best score from all fields
  3. return documents with best score first (given...)

I'm not sure if I'm missing something here, I'm relatively new to ES.