v0.2.0
Breaking
OrmSyncListenertakes aRefreshDispatcherinstead of anEngine.
Added
- Multi-tenancy:
IndexDefinition::tenant/IndexBuilder::tenant()/
#[Searchable(tenant:)]/ YAMLtenant:mark a filter as the tenant scope; every search on a
tenant-scoped index must call->forTenant()(InvalidQuery::missingTenant()) and every
non-scoped index rejects one (InvalidQuery::unexpectedTenant()), enforced in the engine.
Doctor gained a "Tenant scoping" check; exporters round-triptenant. - Column-aware trigger filtering: a watched table's UPDATE only queues a refresh when a
relevant column changed. Automatic for a table-sourced index's own watch; opt-in for joined
watches via.watch(..., columns: [...])/ YAMLcolumns:. Doctor gained a "Column-aware
filtering" check that also validates explicitcolumns. - Configuration wizard:
fuzzphony:wizardsuggests a definition from table structure and
planner statistics, explains every decision, exports YAML / builder / attributes,--tryit. - Statement-level sync triggers (default) using transition tables.
trigger_level: rowkeeps
the previous behaviour; the doctor detects leftovers. - Per-query ranking overrides:
->ranking(['boost' => 0.1]),RankingProfile::with()/toArray(). - Messenger:
orm_sync.asyncdispatchesRefreshDocumentsmessages. - API Platform
FuzzphonySearchFilter, Live Component<twig:Fuzzphony:Search>. - Demo app (
demo/): ILIKE comparison, playground, web wizard, benchmark, doctor. - Benchmarks: cold + warm timings,
--markdown/--json, CI workflow with job summary.
Initial feature set
0.2.0 is the first tagged release. It also contains the initial feature set that was never tagged
on its own:
- PostgreSQL engine: weighted full-text search, accent folding, stemming, trigram typo tolerance.
- Index definitions via attributes, YAML or a fluent builder, validated with all violations at once.
- Query language: AND/OR/NOT, phrases, prefixes, field scoping, grouping; never throws on user input.
- Ranking profiles (text, fuzzy, exact/prefix bonus, boost, recency) with score breakdowns.
- Thresholds: min score, fuzzy modes, similarity, candidate limit, input limits.
- Sync modes: queue (default), trigger, ORM, manual; watches for joined tables.
- Doctor with fixes; CLI commands for schema, reindex, worker, search and explain.
Full list: CHANGELOG