cmsig/seal
SEAL Core (cmsig/seal) is a Search Engine Abstraction Layer inspired by Doctrine DBAL and Flysystem. Provides a unified API and schema for indexing, searching, and filtering across multiple search engines. Part of the cmsig/search project.
Key Fit Areas:
bind('search.engine', fn() => new ElasticsearchAdapter()))..env for engine-specific credentials (e.g., SEARCH_ENGINE=elasticsearch, ELASTICSEARCH_URL).Engine implementation.Feasibility Risks:
| Risk Area | Severity | Mitigation |
|---|---|---|
| Unstable API | High | Pin to specific versions; monitor php-cmsig/search for breaking changes. |
| Limited Adapter Support | Medium | Prioritize adapters for your target engines (e.g., Elasticsearch first). |
| Query Complexity | Medium | Test performance with production-like queries; benchmark against raw engine APIs. |
| Documentation Gaps | Low | Supplement with internal runbooks for critical workflows (e.g., reindexing). |
| Laravel-Specific Quirks | Low | Use Laravel’s config() for dynamic engine switching; test with php artisan commands. |
Key Questions:
config/search.php.Artisan for index management (e.g., php artisan search:reindex).ScoutEngine adapter to reuse SEAL for Eloquent models.SearchIndexJob).Stack Conflicts:
Schema::create() for new indices).Rollout Strategy:
feature() helper to toggle SEAL for specific routes/models.| Component | Compatibility | Notes |
|---|---|---|
| Laravel 9/10 | ✅ Full support | Tested with PHP 8.1+. |
| Elasticsearch | ✅ Mature adapter | Default choice for most use cases. |
| OpenSearch | ✅ Supported | May require minor config tweaks. |
| Algolia | ⚠️ Partial (community-driven) | Check adapter maturity. |
| Meilisearch/Typesense | ❌ No official adapter | May need custom implementation. |
| Database | ✅ Agnostic | No ORM dependencies. |
| Queue Workers | ✅ Supports async indexing | Use Laravel queues for scalability. |
Sequencing:
WHERE clauses).php-cmsig/search for updates and contribute fixes if needed.Schema::alter()).Maintenance Tasks:
| Task | Frequency | Owner |
|---|---|---|
| Update SEAL/adapters | Quarterly | DevOps/Backend Team |
| Monitor search query performance | Monthly | Performance Team |
| Review schema changes | Per release | Data Team |
| Backup search indices | Weekly | DevOps |
\Log::debug()) to trace SEAL queries.php-cmsig/search community for unsupported features.Support Tools:
us-east-elasticsearch, eu-west-opensearch).config() to route queries based on user location.Scaling Metrics: | Metric | Target | Tool | |
How can I help you explore Laravel packages today?