- Can I use ezsystems/ezplatform-search in a Laravel project, or is it only for eZ Platform?
- While originally designed for eZ Platform, this package works with Laravel (PHP 8.0+) by abstracting Elasticsearch interactions. You’ll need to adapt it via custom repositories or query translators, but the reusable generator workflow can automate index mapping from Eloquent models, reducing manual setup.
- How does the generator workflow simplify Elasticsearch integration in Laravel?
- The generator workflow (IBX-5569) automates Elasticsearch index mapping creation by analyzing your Laravel models. It reduces boilerplate by generating field definitions, nested objects, and relationships, though complex cases may still require manual overrides for full control.
- What Elasticsearch versions does this package support in Laravel environments?
- The package supports Elasticsearch 7.x and 8.x. For Laravel, pair it with the official `elasticsearch/elasticsearch` PHP client (v8+). Always verify compatibility with your Elasticsearch cluster version before integration.
- Will this package work with Laravel Scout for Elasticsearch?
- No, this package is not a Scout driver. Scout (with Elasticsearch) is simpler for basic search needs, but `ezsystems/ezplatform-search` offers advanced features like faceting, complex filtering, and nested object support—ideal for content-heavy or enterprise Laravel apps.
- How do I handle real-time sync between Laravel models and Elasticsearch?
- Use Laravel observers, model events, or queues to trigger Elasticsearch updates when models change. The package itself doesn’t enforce real-time sync, but the generator workflow can help define consistent index structures to streamline updates.
- Are there performance concerns with indexing large Laravel datasets?
- Yes, bulk indexing can be CPU/memory-intensive. Mitigate this by using queues (e.g., Laravel Horizon) for async updates or batch processing. The generator workflow optimizes initial schema setup, but real-time sync may still require careful tuning.
- Can I use this package without eZ Platform’s abstractions in Laravel?
- Yes, but you’ll need to bypass eZ-specific components. The core Elasticsearch integration is framework-agnostic, so you can register the package’s services in Laravel’s container and use the generator workflow to create mappings tailored to your Eloquent models.
- How do I configure faceted search or nested object queries in Laravel?
- Faceted search and nested queries rely on Elasticsearch’s DSL. The package provides abstractions, but you’ll need to define these in your queries or use the generator to create complex mappings. For Eloquent, extend auto-generated mappings manually for advanced use cases.
- What’s the best way to test this package in a Laravel CI pipeline?
- Mock Elasticsearch responses using libraries like `elasticsearch/elasticsearch`’s test client or tools like Testcontainers for Dockerized Elasticsearch. Test index generation with sample models, query translations, and edge cases (e.g., nested relationships).
- How does this package handle schema updates when Laravel models change?
- The generator workflow can regenerate mappings during deployments, but you’ll need to manage drift manually for fields added post-integration. Use Laravel migrations to update Elasticsearch schemas incrementally, or implement a reconciliation tool for critical fields.