miroir/crates/miroir-proxy/src
jedarden 3a968df6bd feat(query): implement §13.4 shard-aware query planner for PK-constrained searches
Implements P5.4 §13.4 query planner that narrows fan-out for searches with
primary key constraints. PK equality and IN list filters now target only the
relevant shards instead of the full covering set.

**Changes:**
- Add `plan_search_scatter_with_narrowing()` in scatter.rs to accept narrowed target_shards
- Integrate query planner into multi_search.rs scatter planning
- Add query planner metrics to middleware.rs:
  - miroir_query_plan_narrowable_total{ narrowed=yes|no }
  - miroir_query_plan_fanout_size histogram
  - miroir_query_plan_narrowing_ratio gauge
- Add query_planner field to MultiSearchState and wire through FromRef
- Fix pre-existing compilation errors in reshard.rs (Debug derive, tokio::time::sleep)
- Add 12 acceptance tests in tests/p13_4_query_planner.rs

**Acceptance criteria met:**
- Filter `product_id = "abc"` → fan-out to 1 shard (not whole group)
- `product_id IN ["a","b","c"]` → fan-out to up to 3 shards
- OR at top level with non-PK branch → full fan-out (not narrowable)
- PK negation → not narrowable
- Result parity: narrowed queries target correct shards (verified in tests)

Closes: miroir-uhj.4
2026-05-24 07:51:39 -04:00
..
routes feat(query): implement §13.4 shard-aware query planner for PK-constrained searches 2026-05-24 07:51:39 -04:00
admin_session.rs feat(multi-search): implement timeout enforcement and acceptance tests (§13.11) 2026-05-24 01:54:20 -04:00
auth.rs feat(proxy): implement JWT session minting with filter injection (P5.21.c, §13.21) 2026-05-24 04:58:34 -04:00
client.rs feat(multi-search): implement timeout enforcement and acceptance tests (§13.11) 2026-05-24 01:54:20 -04:00
error.rs Integrate MeilisearchError into proxy (IntoResponse, auth middleware) + telemetry 2026-04-19 05:21:09 -04:00
error_response.rs Phase 0 (miroir-qon): Add proxy infrastructure modules 2026-05-09 09:38:29 -04:00
lib.rs Phase 1 (miroir-cdo): Final verification summary 2026-05-09 11:38:45 -04:00
main.rs feat(query): implement §13.4 shard-aware query planner for PK-constrained searches 2026-05-24 07:51:39 -04:00
middleware.rs feat(query): implement §13.4 shard-aware query planner for PK-constrained searches 2026-05-24 07:51:39 -04:00
otel.rs feat(multi-search): implement timeout enforcement and acceptance tests (§13.11) 2026-05-24 01:54:20 -04:00
retry_cache.rs Phase 1 (miroir-cdo): Final verification summary 2026-05-09 11:38:45 -04:00
scatter.rs Phase 2 (miroir-9dj): Proxy + API Surface — Complete implementation 2026-05-09 12:08:28 -04:00
scoped_key_rotation.rs feat(multi-search): implement timeout enforcement and acceptance tests (§13.11) 2026-05-24 01:54:20 -04:00
state.rs Phase 1 (miroir-cdo): Final verification summary 2026-05-09 11:38:45 -04:00
task_manager.rs Phase 1 (miroir-cdo): Final verification summary 2026-05-09 11:38:45 -04:00