chore(objective): fuzzy backfill objective_complex_mapping +115 (#307 OBJ-2) #1310

Merged
bot-backend merged 1 commit from chore/objective-mapping-backfill-307-obj2 into main 2026-06-13 13:58:31 +00:00
Collaborator

Summary

#307 OBJ-2 (P0 objective goldmine). objective_lots (1.12M строк, 81% цен) связывается с domrf для velocity/layout-аналитики. Mapping было 148 → +115 = 263 (107 high + 8 mid, все dev-corroborated).

Подход

Fuzzy-match objective_lots(project_name)domrf_kn_objects(comm_name) LATEST snapshot region_cd=66 через pg_trgm на нормализованных именах (strip ЖК-boilerplate с \m\M word-boundary — фикс over-strip Доминоино).

Precision over recall (P0)

Правило приёмки nsim≥0.62 AND dsim≥0.5 — каждый матч dev-corroborated. Generic-имена с разным застройщиком отклонены (Солнечный/Прекрасный/Стрелки/Невский/Тихий-центр — все dsim=0.0). 28 distinctive-but-dev-noisy true-matches (Основа/Тактика) НЕ авто-вставлены — Anton добавит manually (для P0-цен ложный mapping хуже пропущенного).

Детали

  • match_method='auto_fuzzy_v2', is_reviewed=false (human-review топ-кандидатов; confidence-tier в note). Модель консистентна с существующими 148 (тоже is_reviewed=false auto).
  • Idempotent ON CONFLICT (objective_complex_name, objective_group) DO NOTHING.
  • REFRESH CONCURRENTLY mv_layout_velocity после COMMIT (вне tx).
  • 1:1 без коллизий (115=115), latest snapshot + region_cd=66 (не мёртвый is_ekb).

Test plan

  • database-expert review ⚠️ (idempotent, snapshot, region, collisions, REFRESH — prod-verified dry-run BEGIN/ROLLBACK, INSERT 115)
  • FP-prone generic rows отклонены (поимённо verified), high-confidence 107 сохранён
  • post-deploy: миграция 150 применилась, mapping=263, mv_layout_velocity вырос (~68 новых имён с corpus-данными)

NB

115 unreviewed матчей кормят mv_layout_velocity сразу (MV не фильтрует is_reviewed — как и существующие 148). is_reviewed-gating в MV = отдельный backend-тикет если нужно.

Refs #307

## Summary #307 OBJ-2 (P0 objective goldmine). objective_lots (1.12M строк, 81% цен) связывается с domrf для velocity/layout-аналитики. Mapping было **148 → +115 = 263** (107 high + 8 mid, все dev-corroborated). ### Подход Fuzzy-match `objective_lots(project_name)` ↔ `domrf_kn_objects(comm_name)` LATEST snapshot region_cd=66 через pg_trgm на **нормализованных** именах (strip ЖК-boilerplate с `\m\M` word-boundary — фикс over-strip `Домино`→`ино`). ### Precision over recall (P0) Правило приёмки `nsim≥0.62 AND dsim≥0.5` — каждый матч dev-corroborated. Generic-имена с разным застройщиком отклонены (Солнечный/Прекрасный/Стрелки/Невский/Тихий-центр — все dsim=0.0). 28 distinctive-but-dev-noisy true-matches (Основа/Тактика) НЕ авто-вставлены — Anton добавит manually (для P0-цен ложный mapping хуже пропущенного). ### Детали - `match_method='auto_fuzzy_v2'`, `is_reviewed=false` (human-review топ-кандидатов; confidence-tier в note). Модель консистентна с существующими 148 (тоже is_reviewed=false auto). - Idempotent `ON CONFLICT (objective_complex_name, objective_group) DO NOTHING`. - `REFRESH CONCURRENTLY mv_layout_velocity` после COMMIT (вне tx). - 1:1 без коллизий (115=115), latest snapshot + region_cd=66 (не мёртвый is_ekb). ## Test plan - [x] database-expert review ⚠️→✅ (idempotent, snapshot, region, collisions, REFRESH — prod-verified dry-run BEGIN/ROLLBACK, INSERT 115) - [x] FP-prone generic rows отклонены (поимённо verified), high-confidence 107 сохранён - [ ] post-deploy: миграция 150 применилась, mapping=263, mv_layout_velocity вырос (~68 новых имён с corpus-данными) ## NB 115 unreviewed матчей кормят mv_layout_velocity сразу (MV не фильтрует is_reviewed — как и существующие 148). is_reviewed-gating в MV = отдельный backend-тикет если нужно. Refs #307
bot-backend added 1 commit 2026-06-13 13:51:25 +00:00
chore(objective): fuzzy backfill objective_complex_mapping +115 dev-corroborated (#307 OBJ-2)
All checks were successful
CI / changes (push) Successful in 7s
CI / frontend-tests (push) Has been skipped
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (pull_request) Has been skipped
CI / backend-tests (push) Successful in 6m31s
CI / backend-tests (pull_request) Successful in 6m29s
Deploy / changes (push) Successful in 5s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 2m16s
Deploy / build-worker (push) Successful in 3m34s
Deploy / deploy (push) Successful in 1m28s
d1bc59a5dd
P0 goldmine: objective_lots (1.12M, 81% цен) связывается с domrf для velocity/
layout-аналитики. Mapping было 148 → +115 (107 high + 8 mid) = 263.

Fuzzy-match objective(project_name) ↔ domrf_kn_objects(comm_name) LATEST snapshot
region_cd=66 через pg_trgm на НОРМАЛИЗОВАННЫХ именах (strip ЖК-boilerplate с
\m\M word-boundary). Правило приёмки dev-corroborated: nsim≥0.62 AND dsim≥0.5 —
precision over recall для P0-цен (generic-имена с разным застройщиком, напр.
Солнечный/Прекрасный/Стрелки dsim=0.0, отклонены). match_method='auto_fuzzy_v2',
is_reviewed=false (для human-review топ-кандидатов), confidence-tier в note.
Idempotent ON CONFLICT (objective_complex_name, objective_group). REFRESH
CONCURRENTLY mv_layout_velocity после COMMIT.

Refs #307
bot-backend merged commit d1bc59a5dd into main 2026-06-13 13:58:31 +00:00
bot-backend deleted branch chore/objective-mapping-backfill-307-obj2 2026-06-13 13:58:31 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1310
No description provided.