cmsig/seal-solr-adapter
Apache Solr adapter for the SEAL search engine. Index and write documents to a SolrCloud instance using collections, with direct client setup or DSN-based configuration for common frameworks.
cmsig/seal-solr-adapter) integrates with SEAL (Search Abstraction Layer), a PHP-based search abstraction framework. This aligns well with Laravel applications requiring decoupled search functionality (e.g., multi-engine support, schema-driven indexing).cmsig/seal (core abstraction) + this adapter.SolrEngine facade).EventDispatcher) allows for pre/post-indexing hooks (e.g., logging, analytics).solarium/solarium (legacy) or apache/solr-client-php (modern). Risk: Solarium is unmaintained; prefer apache/solr-client-php for long-term stability.apache/solr-client-php) for latency/cost tradeoffs.apache/solr-client-php) may reduce complexity.Engine as a singleton with Solr client config (e.g., DSN from .env).search(), index(), and delete() methods via a SolrSearch facade.DocumentIndexed) for analytics or caching.SolrAdapter and Engine with runtime config (e.g., Solr URL, auth).$this->app->singleton(SolrEngine::class, function ($app) {
$client = new Client(new Curl(), new EventDispatcher(), [
'endpoint' => config('solr.endpoints'),
]);
return new Engine(new SolrAdapter($client), $app['schema']);
});
config/solr.php (e.g., DSN support via solr://user:pass@host:port).Post → post collection with title, content fields).published_at field).engine->index($document)).apache/solr-client-php (modern, actively maintained).solarium/solarium (if legacy code requires it).CREATE COLLECTION) may need custom scripts.products, articles).composer require cmsig/seal cmsig/seal-solr-adapter apache/solr-client-php
.env:
SOLR_DSN=solr://solr:SolrRocks@solr.example.com:8983?tls=true
php artisan vendor:publish --provider="CmsIg\Seal\SolrAdapterServiceProvider"
SolrEngine service binding schema and client.EventDispatcher can emit events for indexing failures or query latency.monolog) or monitoring (e.g., Sentry)./solr/#/) to verify collections/documents.solr://user:pass@...).posts_2023, posts_2024).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Solr Cluster Down | No search/indexing | Fallback: Cache results or return empty. |
| Schema Mismatch |
How can I help you explore Laravel packages today?