В вашем примере можно придумать функцию, которая покажет нужные цифры тупо по цене.
Если же все параметры учитывать, то нужно их привести к какому-то общему знаменателю, а затем тупо сложить для каждой квартиры. Дальше можно считать разницу, отношение, что угодно.
Реальное решение зависит от того, какую проблему вы решаете. Полагаю, что вы предоставляете пользователю похожие варианты. Но тогда пользователь и должен решать, что является для него решающим фактором, а что - нет.
Например, пользователь пользуется поиском. И в фильтрах указал, что ему важно место и цена. В таком случае коэффициент важности площади будет равен нулю, и она не будет играть роли. Для места и цены у вас уже должны быть подобраны коэффициенты и методы подсчета, их оставляем. Кстати, что касается места, то разумно брать реальное расстояние, то есть соседний район ближе, чем в другом конце города, а это потребует дополнительной таблицы с константами или более сложный алгоритм конкретно для данного компонента (идеально учитывать адрес квартиры и считать в километрах).