- Can I use intaro/postgres-search-bundle in a Laravel application?
- No. intaro/postgres-search-bundle is a Symfony2 bundle built around Doctrine entities and the Symfony DI container, so it has no Laravel service provider, Eloquent integration, or bundle-free installation path. You would need Doctrine, an ORM bridge, and Symfony bundle emulation just to reach the SQL. Treat it as reference material, not a Composer dependency for Laravel.
- How do I install intaro/postgres-search-bundle, and does it support modern Laravel versions?
- Installation would be a normal Composer require only in a Symfony2 project, followed by bundle registration and Doctrine configuration. It is not supported on modern Laravel versions because the package targets Symfony2/Doctrine2-era constraints that conflict with current PHP and Laravel dependency pins. There is no Laravel package discovery or configuration file.
- What does intaro/postgres-search-bundle do for PostgreSQL full-text search?
- It maps Doctrine entities to PostgreSQL full-text search by maintaining tsvector data, indexing it with GIN, building tsquery searches, and returning ranked results with PostgreSQL search operators. It also exposes configurable dictionaries and language-aware stemming through Symfony service wiring. In Laravel terms, it is a documented technique wrapped in a Symfony bundle.
- Is intaro/postgres-search-bundle maintained or abandoned?
- Effectively abandoned. It has zero stars, zero dependents, no downstream users, and no issue triage history, and it sits on Symfony 2, which reached end of life in 2018/2019. That means no security patches and no compatibility work as PostgreSQL features evolve.
- How do I implement PostgreSQL full-text search in Laravel without this package?
- Use Laravel migrations to add a weighted tsvector column, a GIN index, and a trigger or generated column to keep it current. Query with the query builder using to_tsquery, plainto_tsquery, or websearch_to_tsquery and rank with ts_rank or ts_rank_cd. A focused spike is usually one to two engineering days plus the migration, which is cheaper than importing the bundle's framework stack.
- What are the best Laravel alternatives to intaro/postgres-search-bundle?
- For Laravel, consider raw PostgreSQL FTS through the query builder, Laravel Scout with a database driver or Meilisearch/Typesense, or a maintained full-text package if you need typo tolerance, faceting, and synonyms. PostgreSQL FTS is strong for stemmed keyword matching and basic ranking, but not for typo tolerance or synonyms without custom work. The right choice depends on whether your requirement is Postgres FTS or a broader search product.
- How does intaro/postgres-search-bundle rank search results?
- It relies on PostgreSQL's ts_rank and ts_rank_cd functions against a tsvector built from weighted searchable fields. Configurable dictionaries and language settings affect stemming and matching, while the tsquery side controls prefix and phrase behavior. The ranking quality is native PostgreSQL quality, not an application-level relevance engine.
- Does intaro/postgres-search-bundle support language-aware stemming and configurable dictionaries?
- Yes, at the PostgreSQL level the bundle supports configurable text search dictionaries and language-aware configurations such as simple or english. That controls stemming and stop words, but it is not a synonym engine or typo-tolerance layer. A Laravel port should preserve the same Postgres text search configuration names in migrations and queries.
- Is intaro/postgres-search-bundle safe for production use in Laravel?
- No, not for a Laravel production application. The package is unmaintained, has zero adoption, and depends on an end-of-life Symfony generation, so it typically fails supply-chain and security review. The risk is not just code quality; it is the lack of patches, compatibility guarantees, and downstream fixes. Adopt the SQL pattern instead of the dependency.
- How should I test a Laravel port of the PostgreSQL tsvector search pattern?
- Test the ported implementation with a real PostgreSQL test database, not SQLite, because tsvector, GIN, and tsquery behavior are Postgres-specific. Write feature tests that migrate the schema, seed representative content, run searches, and assert both matches and ranking order. Include language configuration, empty queries, phrase queries, and index rebuild or trigger behavior in the test matrix.