$ search --query

Add frontend search to your Pimcore CMS in minutes, not sprints

Pimcore Universal Search is a free bundle that indexes your documents, assets, and data objects with OpenSearch, and exposes a ready-to-use JSON search API and Twig components.

Free on a single site. Pro is coming, with multi-site indexing, Meilisearch, Apache Tika document parsing, and a full admin panel. It installs on top of the free bundle, no reindex required.

Built for Pimcore 11 & 12·Powered by OpenSearch·Free
preview

Results on your site, out of the box

One Twig call renders a paginated, sortable results list with highlighted matches. Override the template, or skip it and use the JSON API.

/search?q=noise+cancelling+headphones
Search results page rendered by the bundle: three hits for noise cancelling headphones (a product object, a document and a PDF asset) with the matched words highlighted.

Default template rendered with pimcore_search_render() on a demo site. Bring your own CSS.

compatibility

Works with the Pimcore stack you already run

No wrapper, no fork, no custom indexer to maintain. Installs as a standard bundle via Composer and plugs into your existing Pimcore version, PHP runtime, and OpenSearch instance.

Pimcore
11.x & 12.x
PHP
8.2+
Symfony
6.4 & 7.x
Engine
OpenSearch 2.x
$ composer require 2bdev-studio/pimcore-universal-search $ bin/console pimcore:search:index --sync
installation

From composer require to first results

About ten minutes on an existing Pimcore project with OpenSearch running. Optional: pdftotext (poppler-utils) for PDF text.

  1. Add the repository and require the package

    The package is served from our public Composer repository. No account or token needed.

    $ composer config repositories.2bdev-studio composer https://2bdev-studio.repo.repman.io $ composer require 2bdev-studio/pimcore-universal-search
  2. Register the bundle

    In config/bundles.php:

    PimcoreLabs\Bundle\UniversalSearchBundle\UniversalSearchBundle::class => ['all' => true],
  3. Point it at OpenSearch

    In .env:

    OPENSEARCH_URL=http://opensearch:9200
  4. Install tables and assets

    $ bin/console pimcore:bundle:install UniversalSearchBundle $ bin/console assets:install $ bin/console cache:clear
  5. Choose which objects are searchable

    Documents and PDF/text assets are indexed out of the box. Data objects need a short entry per class in config/packages/pimcore_universal_search.yaml:

    pimcore_universal_search: objects: Product: fields: [name, description, sku] # first field is the title url_pattern: '/product/{key}'
  6. Build the index and search

    $ bin/console pimcore:search:index --sync $ curl 'https://your-site.test/search?q=hello'

    Then render results in any Twig template:

    {{ pimcore_search_render(app.request.query.get('q')) }}
free vs pro

From OpenSearch basics to enterprise-grade frontend search

Start free with a production-ready OpenSearch integration. Pro adds multi-site indexing, Meilisearch, rich document extraction, and a no-code admin panel.

Free
Single site, available now
  • › OpenSearch engine, pre-configured
  • › Documents, assets (PDF, text), data objects
  • › Public JSON /search API with highlighting
  • › Async indexing with retry queue
  • › CLI: index, clear, status, process-queue
  • › Twig functions & editable
  • › YAML configuration
Procoming soon
Everything in Free, plus:
  • ✓ Multi-site indices & config
  • ✓ Meilisearch as alternate engine
  • ✓ Apache Tika: PDF, DOCX, XLSX, ODT
  • ✓ Admin UI panel in Pimcore backend
  • ✓ Queue dashboard & advanced retry
  • ✓ Themeable search widget component
  • ✓ Facets & per-class filtering
pro waiting list

Get Pro first

Leave your email and we'll write once when Pro is available, with early-access pricing. Nothing else.

use cases

Built for how Pimcore projects actually use search

Every Pimcore implementation needs search somewhere: a product catalog, a document library, a DAM browser, a customer portal. It adapts to the scenario instead of forcing one generic search box.

01 · pim & commerce

Product & PIM catalog search

Search across data objects (products, variants, categories) by type and locale, in sync the moment product data changes.

02 · dam

Document & DAM discovery

Index PDFs, spec sheets, and text assets. With Pro's Apache Tika integration, full-text search reaches inside office files too.

03 · multi-brand

Multi-site and multi-brand setups

Pro's per-site indices keep each site's results scoped correctly, with independent configuration and excluded paths per site.

04 · headless

Headless and composable frontends

The JSON API works independently of Twig, so React, Vue, or any frontend can query results directly, or drop in the Pro widget.

get started

Add search to your Pimcore project today

Free on OpenSearch. When Pro ships it installs on top: no migration, no reindex, just a new package.

Free·Built on OpenSearch·Composer-installable in minutes