Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Opensearch Php Laravel Package

opensearch-project/opensearch-php

opensearch-php is a community-driven, open source PHP client for OpenSearch, forked from elasticsearch-php and licensed under Apache 2.0. It lets PHP applications index, search, and manage data in OpenSearch clusters.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on search infrastructure. Adopting the official client means the API surface (index management, query DSL, aggregations, snapshots, point-in-time, SQL, ML Commons) is generated from the OpenSearch API specification and shipped for you. The decision to "build" collapses to integrating a maintained client rather than hand-rolling HTTP calls — a strong argument for buying.
  • Search feature roadmap. Directly unblocks roadmap items that depend on a search backend: catalog/product search with facets and relevance tuning, site-wide typeahead, "similar items," document/knowledge-base retrieval for AI features, and filtered admin reporting over large datasets that would choke MySQL.
  • Observability and log analytics as a product capability. The same client backs application log shipping, audit trails, and internal dashboards. This can justify one OpenSearch cluster serving both product search and ops analytics — a consolidation that shifts infra cost decisions.
  • Migration off Elasticsearch. The package is a fork of elasticsearch-php, so it is the concrete lever for de-risking the SSPL licensing exposure introduced by Elastic's license change. This is a strategic decision (legal + vendor), not just a technical one, and it belongs in roadmap planning.
  • Cloud and hosting posture. AWS SigV4 signing support (including a custom signing service name and OpenSearch Serverless) keeps the door open to Amazon OpenSearch Service and lets the team avoid running stateful clusters early. Conversely, the PSR-18 abstraction means self-hosted or third-party OpenSearch endpoints are not locked out.
  • Use cases where it is the wrong tool. Small datasets (< ~100k rows), simple LIKE-style filtering, and single-field lookups are better served by the relational database. A PM should gate on this explicitly to avoid over-engineering.
  • Platform-version planning. Minimum PHP is 8.1, and 2.6.0 raises it to 8.2 with PHP 8.5 testing. That is a roadmap input for any team still on PHP 8.0/8.1 — it forces an upgrade decision.

When to Consider This Package

Consider it when most of the following are true:

  • The application is PHP/Laravel on PHP 8.2+ and already has, or is prepared to run, an OpenSearch or Elasticsearch-compatible cluster.
  • The workload needs real search semantics — relevance scoring, analyzers, aggregations, highlighting, geo queries, or point-in-time pagination — not just filtering.
  • You are on AWS and want IAM-based auth rather than static credentials (SigV4 and Serverless signing are first-class).
  • You want the full administrative API, not just document CRUD: index templates, aliases, reindex, snapshots, SQL plugin, ML Commons connectors and models.
  • You need raw JSON request passthrough for queries the typed API doesn't cover, or for porting queries from another system.
  • You are migrating off elasticsearch-php and want a near drop-in path with an Apache-2.0 license.
  • The team is comfortable with PSR-18/PSR-17 HTTP clients (Guzzle or Symfony factories are provided) and with injecting a client into Laravel's service container.

Look elsewhere when:

  • Small data or simple needs. Under ~100–500k documents with modest query complexity, Postgres full-text or WHERE ... LIKE wins on operational cost and cognitive load.
  • You want a batteries-included Laravel DX. Laravel Scout plus a community OpenSearch driver gives you model-level indexing and search out of the box; the raw client is the substrate, not the product experience. Budget adapter work accordingly.
  • You need a managed search SaaS with zero ops. Meilisearch, Typesense, or Algolia trade API breadth for developer ergonomics; choose them if nobody on the team wants to own cluster sizing, sharding, and upgrades.
  • The requirement is only log shipping / metrics. Fluent Bit, OpenTelemetry, or a hosted observability vendor is a lighter path than embedding a search client in the app.
  • You need broad community support and third-party integrations. The measured adoption signals here are thin (159 stars, 0 tracked dependents), the license is reported as NOASSERTION in package metadata despite the README's Apache-2.0 claim, and no first-party Laravel integration ships with it. Validate the license and the bus factor internally before committing.
  • You are stuck on PHP 8.0 or 7.x. Version 2.4 dropped those; you'd be pinning an unsupported release.

How to Pitch It (Stakeholders)

To executives (one paragraph): This is the officially backed, Apache-2.0 PHP client for OpenSearch, maintained by the OpenSearch project with a steady release cadence and CI against PHP 8.2 through 8.5. Adopting it lets us add real search — relevance-ranked catalog search, filtering, facets — without licensing exposure, because it is a fork of the Elastic client that sidesteps Elastic's restrictive SSPL terms. It also keeps us portable: the same code runs against self-hosted OpenSearch, our own clusters, or Amazon OpenSearch Service with IAM credentials, so we are not buying into a single vendor to get started. The main caveat is that it is a low-level library, not a turnkey Laravel search layer — plan for a small adapter and for someone to own cluster operations.

To engineering (bullets):

  • Typed endpoint coverage generated from the OpenSearch API specification and refreshed per release — we are not maintaining HTTP plumbing.
  • PSR-18/PSR-17 based with Guzzle and Symfony client factories, so it binds cleanly into Laravel's container and our existing HTTP middleware, retries, and tracing.
  • AWS SigV4 and Serverless signing included; no custom auth code.
  • Raw JSON request support for anything the typed API misses, which keeps migration and experimentation cheap.
  • Deprecation trajectory is clearly signposted toward 3.0 (legacy connection/connection-pool/selector classes are going away in favor of retry-capable PSR clients) — we should build against the PSR factories from day one to avoid rework.
  • Minimum PHP 8.2 in the current line; confirm our runtime baseline before committing.

Risks to name up front: thin visible adoption metrics, ambiguity between the reported package license and the advertised Apache-2.0 license (legal should confirm), no bundled Laravel/Scout integration, and the operational burden of running a cluster — which is a team-capability question, not a library question.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics
robbiep/afterthedeadline
frankkessler/incontact-laravel-oauth2-rest
jlxh/laravel-userlog
davidmgilo/timetables
qylinfly/role-permission
reflect-digital/conduit
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr