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

Postgres Search Bundle Laravel Package

spine/postgres-search-bundle

PostgreSQL full-text search for Laravel: index your models, run ranked tsvector queries backed by GIN indexes, and keep results in sync automatically. A lightweight alternative to external search engines with no extra infrastructure or services to run.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Search feature discovery and scoping. The package exists to expose PostgreSQL full-text search (tsvector/tsquery, ranking, stemming) through Doctrine. For a PM, it frames a concrete build-vs-buy question: can Postgres native FTS cover our search requirements (keyword match, relevance ranking, language-aware stemming) without adding a dedicated search service?
  • Build vs. buy vs. borrow. It represents the "borrow" option — a thin ORM integration layer rather than Elasticsearch/Meilisearch/Algolia. Choosing it is a decision to keep search inside the primary database, avoiding a new managed service, sync pipeline, and operational owner.
  • Architecture and cost roadmap. If adopted, it implies: no separate search cluster, no index synchronization jobs, no additional vendor spend, and search quality bounded by Postgres's ranking and linguistic capabilities. That is a legitimate roadmap commitment for MVP-to-mid-scale products with modest corpora and straightforward relevance needs.
  • Use cases it enables. Product listings and catalog filtering, internal document/knowledge-base search, support ticket or CRM record lookup, CMS content search, and admin back-office search — all cases where "good enough keyword relevance" beats latency and ops overhead of a separate engine.
  • Migration and modernization decisions. With zero stars, zero dependents, and a last release in September 2016, the most defensible product decision it supports is a sunset decision: identify any feature depending on it, quantify replacement cost, and schedule migration to native Postgres FTS, Doctrine DQL custom functions, or a maintained search abstraction.
  • Risk budget allocation. It is a data point for prioritizing technical-debt work on legacy Symfony/Doctrine surfaces, and for setting a policy that no new customer-facing capability depends on unmaintained third-party code.

When to Consider This Package

Consider it only under a narrow, mostly historical set of conditions:

  • You are on a Symfony application (not Laravel) with Doctrine ORM already mapping your entities, and Postgres is your system of record.
  • You need only Postgres-native full-text semantics — lexeme matching, stemming, ts_rank relevance — and can accept Postgres's tokenizer and dictionary limitations (weak fuzzy/typo tolerance, limited multilingual behavior, no vector/semantic retrieval).
  • Your corpus and query volume fit a single Postgres instance, and you have no appetite for an external search service (Elasticsearch, OpenSearch, Meilisearch, Typesense, Algolia).
  • You are working in a frozen or legacy codebase where the bundle is already installed and the realistic goal is stabilization, not new development.
  • You have engineering capacity to vendor or fork the code and own it, because upstream maintenance is effectively absent.

Look elsewhere — or plan a replacement — when any of the following holds:

  • You are on Laravel. This is a Doctrine/Symfony bundle; Laravel's Eloquent, query builder, and migration model are not what it targets. Laravel has better-aligned native options (Laravel Scout with a database driver or Meilisearch/Typesense, or raw to_tsvector via whereFullText/whereRaw). Note this mismatch explicitly: the package was submitted as a Laravel/PHP package, but it is a Symfony bundle — a real due-diligence flag on whoever sourced it.
  • You need a maintained dependency. Last release 2016; zero stars, zero dependents, no release cadence. No evidence of an active maintainer, no security response path, no compatibility guarantees for modern PHP or Doctrine versions.
  • You need modern PHP/Doctrine support. The 2016 vintage predates current PHP versions, Doctrine ORM 2.10+/3.x, and Symfony 5/6/7. Expect compatibility work, not drop-in installation.
  • Search quality is a product differentiator. Typo tolerance, synonyms, faceting, per-field boosting, multilingual relevance, and semantic/hybrid retrieval are all weak or absent relative to a dedicated engine.
  • Your search workload is large or spiky. You will contend with your transactional workload on the same database, and relevance tuning becomes a database-tuning problem.
  • You require vendor support, SLAs, or an auditable supply chain. Use a supported library or the database vendor's own first-party tooling.

Practical adoption test before committing: confirm the bundle installs against your current PHP/Doctrine versions in a spike; verify it can express your three most important search queries with acceptable ranking; measure query latency at target data volume; and confirm a named engineer owns the fork. If any of those fail, do not proceed.

How to Pitch It (Stakeholders)

For executives — the one-line version: This is a thin, abandoned 2016-era library for using Postgres's built-in search from a Symfony/Doctrine codebase. It is not a Laravel package, it has no community, and it has had no release in roughly nine years, so I do not recommend adopting it for new work — but it usefully frames a decision we do need to make about search.

The business case for the underlying approach (keep search in Postgres): For MVP and mid-scale search, Postgres full-text search can carry the feature without a new managed search service. That means no new vendor contract, no index-sync pipeline to build and operate, no second datastore to secure and back up, and one fewer system on call. The trade-off is search quality — no typo tolerance, limited multilingual and synonym handling, no semantic retrieval — and search load lands on the primary database.

The risk case for this specific package: zero stars, zero dependents, no release since September 2016, no visible maintainer. Adopting it means adopting the maintenance burden ourselves: version compatibility with current PHP and Doctrine, security patching, and eventual replacement. The expected cost is not the license (free) but the engineering ownership.

Recommendation: Do not introduce this bundle. If we want Postgres-native search, implement it directly against tsvector/tsquery with our own thin abstraction (or use Laravel's native full-text support, or Laravel Scout with a database driver) — a small, well-understood surface we control. If search relevance is a differentiator or the corpus grows beyond what one Postgres instance should serve, budget for Meilisearch, Typesense, or OpenSearch instead.

What I need from engineering: a day or two of spike work to (1) inventory whether anything in the current estate already depends on this bundle, (2) prove our top three search queries against native Postgres FTS with acceptable relevance and latency, and (3) give a rough size for building and owning that thin layer. With that, I can decide search architecture on evidence rather than on a nine-year-old dependency.

Ask of the business: treat "search stays in Postgres" as the default for now and revisit when relevance quality or query volume becomes a measurable customer complaint — not before.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels