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 |
||
|---|---|---|
| .. | ||
| analysis_runs | ||
| analytics | ||
| cadastre | ||
| chat | ||
| etl | ||
| exporters | ||
| forecasting | ||
| generative | ||
| llm | ||
| photos | ||
| scrapers | ||
| site_finder | ||
| __init__.py | ||
| analytics_queries.py | ||
| analytics_refresh.py | ||
| forecast_request_cache.py | ||
| insights.py | ||
| job_settings.py | ||
| objective_etl.py | ||
| objective_sync_config.py | ||
| own_projects.py | ||
| weather_cache.py | ||