kn-API не отдаёт obj_class для ~3032 ЖК Свердл, что ломает per-class velocity/absorption/weight. Добавлен fallback: - 169_obj_class_fallback.sql: obj_class_fallback + obj_class_source колонки, pg_trgm + GIN trgm индексы на LOWER(comm_name) и LOWER(yandex_realty_zk.name). - app/services/etl/obj_class_backfill.py: trigram-match comm_name ↔ yandex_realty_zk.name (similarity >= 0.6, CROSS JOIN LATERAL) → obj_class_source='yandex_match'; price-inference по yandex_realty_class_prices → 'price_inference'. Idempotent, SAVEPOINT per row. - Консьюмеры (analytics_queries / velocity / competitors): класс-фильтр и dominant_class читают COALESCE(obj_class, obj_class_fallback) — реальный класс в приоритете, поведение для размеченных ЖК не меняется. Внутренний backfill — response-схема (parcel.py / OpenAPI) не меняется. Refs #38 |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| observability | ||
| schemas | ||
| scrapers | ||
| services | ||
| templates | ||
| workers | ||
| __init__.py | ||
| main.py | ||