I think the most important part here in terms of the UX is the freedom and control you give to the users and the information you give to them.
Give the user the feeling that they are in control and act according to their preferences. In this case it sounds to me that users are going to make a trade-off: this person matches 100% but lives far away vs. this person is very close to me but the match might be imperfect.
If the user has the ability to let the system know what the maximum radius is in which the system searches for matches, or what the minimum required match % is, the system can take these values into account and show matches that are preferred by the user.
Another solution is thinking in a regression, however, thinking in regression is fairly difficult for most people. But you could give your users the option to set attribute weights. For example, a slider or number value to indicate how important proximity is or how important a match is:
will result in: y = proximity*3 + match%*4.
In this way a score is calculated and the results are ordered, but most importantly for your question, the user knows where this calculation comes from because the user set the attribute weights.
Finally, think about decision-making strategies to help your users make a deliberate decision (Bettman, Payne, Johnson are researches who identified a few; such as, satisficing, weighted additive, equal weights, lexicographic etc.)