- How do I integrate Algolia with Laravel using this adapter without breaking existing search logic?
- This adapter works with the `cmsig/seal` search abstraction layer, so you can replace direct Algolia SDK calls with a `Engine` instance wrapped in the `AlgoliaAdapter`. Configure it via DSN (e.g., `algolia://APP_ID:ADMIN_KEY`) or the official Algolia SearchClient, then inject it into Laravel’s service container. Existing queries using SEAL’s query builder will automatically route to Algolia.
- Does this adapter support Laravel Scout’s model indexing features?
- No, this package is designed for the `cmsig/seal` abstraction layer, not Laravel Scout. If you’re using Scout, consider the official Algolia SDK or alternatives like `spatie/laravel-search`. However, SEAL can manually index Eloquent models via events or cron jobs, offering more control than Scout’s built-in syncing.
- What Laravel versions and PHP versions are supported?
- The package requires PHP 8.0+ and is built for Laravel 9+. Since it depends on `cmsig/seal`, ensure compatibility by checking the parent library’s requirements. The adapter itself has no Laravel-specific dependencies beyond the SEAL abstraction, so it should work with any Laravel 9+ app using Composer autoloading.
- Can I use this adapter for production without risking breaking changes?
- This is an early-stage package with no stable releases yet. While the adapter follows the Adapter Pattern, the underlying `cmsig/seal` library is also under heavy development. Test thoroughly in staging, monitor the GitHub discussions for updates, and consider forking or contributing feedback if you rely on it in production.
- How do I handle Algolia-specific features like rules or analytics?
- The adapter exposes core Algolia functionality (indexing, querying) but may not cover advanced features like rules or analytics yet. For these, you’ll need to extend the adapter or use the raw Algolia SearchClient alongside the SEAL engine. Check the `cmsig/seal` roadmap for planned Algolia-specific extensions.
- Is there a performance overhead compared to using Algolia’s SDK directly?
- The adapter adds minimal overhead for basic operations like indexing or querying, as it delegates calls to the official Algolia SDK. However, schema validation or query transformations in SEAL could introduce latency. Benchmark your use case—especially for high-throughput apps—to compare against direct SDK usage.
- How do I configure the adapter to work with nested objects or faceted search?
- SEAL supports dynamic schema definitions, so you can map nested objects to Algolia’s nested attributes by defining the schema in your `Engine` configuration. Faceted search is also possible via SEAL’s query builder, but ensure your Algolia index is configured to support the facets you need. Complex setups may require custom adapter extensions.
- What’s the difference between using this adapter and the official Algolia Laravel SDK?
- This adapter provides a search abstraction layer (SEAL), letting you switch between Algolia, Elasticsearch, or Meilisearch without rewriting business logic. The official SDK is Algolia-specific and tightly integrated with Laravel Scout. Use this adapter if you need multi-engine support or want to decouple search logic from Algolia’s API.
- How do I handle authentication and API keys securely?
- Store your Algolia credentials in Laravel’s `.env` file using the DSN format (e.g., `ALGOLIA_DSN=algolia://APP_ID:ADMIN_KEY`). The adapter will parse this during initialization. Avoid hardcoding keys in your codebase, and restrict the admin API key to only necessary permissions (e.g., index management).
- Are there alternatives if I don’t need multi-search-engine support?
- For simpler use cases, consider the official `algolia/algolia-search-client-php` SDK or Laravel-specific packages like `spatie/laravel-search`. These offer tighter integration with Laravel’s ecosystem (e.g., Scout) and more mature feature sets. This adapter is ideal only if you’re already using or planning to adopt `cmsig/seal` for abstraction.