cmsig/seal-opensearch-adapter
OpenSearch adapter for the cmsig/search SEAL project. Write and index documents in an OpenSearch server via the OpenSearch PHP client, usable directly or via DSN (TLS and basic auth supported). Still under active development.
cmsig/seal project’s goal of providing a standardized search layer, reducing vendor lock-in and simplifying future migrations (e.g., switching from OpenSearch to another engine like Meilisearch).seal adapters (e.g., PostgreSQL full-text) as needed.Adopt if:
cmsig/seal search abstraction layer (this adapter is tightly coupled to it).Look elsewhere if:
opensearch-php directly).seal or OpenSearch natively supports these before adopting).For Executives:
"This package lets us adopt OpenSearch—a cost-effective, open-source alternative to Elasticsearch—without rewriting our search infrastructure. By integrating with the cmsig/seal abstraction layer, we future-proof our search capabilities, enabling easier swaps between search engines as our needs evolve. Early adoption aligns with our open-source strategy and could reduce cloud search costs by up to 70% compared to managed services. The trade-off is minimal upfront risk, as the project is community-driven and we can validate stability through testing."
For Engineering:
*"This adapter bridges our Laravel/PHP app to OpenSearch using the seal search abstraction, giving us a standardized way to manage indices, queries, and schema. It’s a lightweight wrapper around the official OpenSearch PHP client, so we retain full control over performance tuning. Key benefits:
opensearch://user:pass@host:9200?tls=true), simplifying deployment.cmsig/search team ensure we’re not building alone.
Downside: The adapter is pre-1.0, so we’ll need to monitor updates or contribute fixes. Let’s prototype it for [X use case] and measure performance against our current solution."*For Developers:
*"This is a drop-in adapter for OpenSearch in the seal search library. To use it:
composer require cmsig/seal-opensearch-adapter.127.0.0.1:9200 or cloud instance).Engine with the adapter and your schema.
Example:$engine = new Engine(
new OpensearchAdapter(ClientBuilder::create()->setHosts(['opensearch:9200'])->build()),
$schema
);
Pro Tip: Use the DSN format (opensearch://...) for framework-agnostic config. Start with a non-critical feature to test stability."*
How can I help you explore Laravel packages today?