Гео-фильтр ≤300м (мигр.150) широк для плотной застройки: к 5-этажному дому (Мраморская 34к4) примагничены чужие листинги 9/16/19-этажных башен (Благодатская 15, Мраморская 6) на 229-282м — все <300м, фильтр не отсекал. - мигр.152: +houses.zhkh_floors (parse zhkh_floors_raw "10-30"→max); гард во view во всех 5 FILTER: считать листинг только если abs(l.total_floors - COALESCE(zhkh_floors, total_floors)) <= 3 (или этажность неизвестна). Гео-фильтр 300м сохранён. - buildings_query.build_listings_query: тот же гард в детальной выдаче. Прод-замер: отсекает 2754 листинга (12%) height-mismatched. Покрытие этажности 75% total_floors / 73% ЖКХ. ruff clean, pytest 26 green. |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| observability | ||
| schemas | ||
| services | ||
| tasks | ||
| __init__.py | ||
| main.py | ||
| scheduler_main.py | ||