ibexa/solr
Ibexa Solr search engine bundle for Ibexa DXP, providing the Solr search backend implementation. Includes unit and integration test setup instructions for contributors.
Architecture fit
ibexa/solr is a Symfony bundle (Ibexa\Bundle\Solr\IbexaSolrBundle) and a first-party component of Ibexa DXP. It implements the Ibexa search engine SPI (SearchService, Criterion/SortClause visitors, facet and aggregation builders) against Apache Solr over HTTP.Content, Location, ContentType, RepositoryConfigurationProviderInterface). Pulling it into Laravel is not a "glue code" problem — it is a category error.IsBookmarked / IsUserEnabled / IsContainer criteria, and configurable HTTP client timeout and retry counts.Integration feasibility
composer require ibexa/solr, enable the bundle, point it at a Solr connection, create cores, run a full reindex. The README's only prerequisite is "install Ibexa DXP".ibexa/core and a live Solr instance (CORES_SETUP="single" or multi-core). There is no meaningful "use this library for Solr search in your app" path.Technical risk
| Risk | Severity | Notes |
|---|---|---|
| License | High | Dual-licensed: Ibexa Business Use License v2.4 (requires a paid Ibexa DXP subscription) or GPLv2. GitHub reports NOASSERTION. Commercial closed-source use is effectively subscription-gated. Legal review is a hard gate. |
| Platform lock-in | High | Only functions with ibexa/core; adoption is really a decision to standardise on Ibexa DXP. |
| Operational surface | Medium | Adds a JVM/Solr tier, configset/schema lifecycle, and reindex windows. |
| Community depth | Medium | 5 stars, 0 listed dependents; effectively single-vendor maintenance with support via the Ibexa portal (IBX tickets). |
| Version drift | Low–Medium | PHP 8.3+ and Symfony 7.x floor; v5.0.x requires a coordinated DXP upgrade. |
Key questions for the vendor / team
ibexa/solr under the BUL — or are we accepting GPLv2 obligations?Stack fit
ibexa/solr is the sanctioned and lowest-risk search backend; the alternative (custom Solr integration) means reimplementing the entire visitor/aggregation layer.Migration path (Ibexa context)
ibexa/core — schema is owned upstream, not by this bundle.composer require ibexa/solr on the matching 4.6.x/5.0.x line; enable the bundle; configure connection(s), basic auth, timeout, and max retries.Compatibility and sequencing
Maintenance
Support
Scaling
Failure modes
| Failure | Symptom | Mitigation |
|---|---|---|
| Solr unavailable | Search and all Solr-backed queries fail; content editing may surface index errors | Health checks, fallback to degraded "browse-only" UX, circuit breaker |
| Index drift / stale documents | Content visible in admin, missing from search | Monitor index vs repository counts; scheduled reconciliation; alert on indexing queue depth |
| Schema mismatch after upgrade | Silent zero-result queries or exceptions on unknown fields | Mandatory full reindex post-upgrade; verify core schema version at boot |
| Reindex saturation | Query latency spikes during rebuild | Dual-core rebuild-and-swap; throttle reindex concurrency |
| Auth/credential leakage | Secrets in logs | Ensure the v5.0.8 credential-scrubbing fix is present |
| Version skew (bundle vs DXP) | Fatal errors on container compile | Pin exact minor; lock-step upgrade policy |
Ramp-up
How can I help you explore Laravel packages today?