Skip to main content
Advanced search

Production-grade storefront search. No third-party vendor.

Faceted, multi-language, geo-aware, analytics-ready. Custom mappings for your data model. Self-hostable open-source search engine, GraphQL API, no per-query vendor bill.

Search · three paths
one wins
Built-in SQL searchLIKE on a column
Faceted filtering
Multi-language
Typo tolerance
Synonyms
Search analytics
Geo-search
slow · single-language
Algolia / Elasticsearchper-query vendor
Faceted filtering
Multi-language
Typo tolerance
Synonyms
Search analytics
Geo-search
per-query bill · 2nd vendor
Advanced Searchone plugin · self-hosted
Faceted filtering
Multi-language
Typo tolerance
Synonyms
Search analytics
Geo-search
self-hosted · one plugin

Pay Algolia forever, or live with SQL LIKE

Most commerce platforms force the same trade-off. Use the built-in SQL search and accept slow, unfaceted, single-language results. Or bolt on Algolia or Elasticsearch and pay per query for the lifetime of the catalogue, with a second vendor relationship and a second index to keep in sync.

Advanced Search is a first-class plugin in Vendure Platform, backed by an open-source, self-hostable search engine (single binary, no JVM, no licensing tier), with faceted filtering, search analytics, custom mappings, and typo tolerance built in. No external billing line, no second control plane.

What Advanced Search gives you

A real search engine for a real commerce catalogue

Five capabilities, one plugin, one engine you control.

Your search engine. Your infrastructure.

The search core is open source. You run it on infrastructure you control. No per-query bill, no third-party contract, no data leaving your systems. Ship the single binary, Docker image, or Kubernetes manifest into the same infrastructure you already operate. Or let Vendure Cloud provision and operate it for you.

Custom mappings and faceted filtering

Index any field on your data model, primitive or object, drawn from product, variant, or related entities. Mark a mapping as facet: true and it becomes a faceted filter in the GraphQL API and the dashboard. The schema is yours, not a fixed shape the plugin imposes.

Multi-language indexes

One index per language, populated from your translated products, variants, and custom fields. Multi-region storefronts get language-tuned tokenisation, ranking, and typo tolerance, with no extra wiring on the storefront side.

Geo-search

Index a Geopoint mapping per variant and query by latitude and longitude. Power stock-near-me, delivery-zone filtering, and store-locator scenarios on the same engine that runs the rest of the catalogue.

Search analytics

Top searches, no-result queries, and click-through patterns, aggregated with a configurable debounce window so partial typing does not pollute the data. Pluggable analytics strategies (SQL or Clickhouse) so the storage layer matches your scale. A merchandising signal, not just instrumentation.

Event → index → query
one plugin
Product
Variant
Asset
Collection
Tax
Advanced Search pluginindexer
Search engine · indexone
Storefrontsame GraphQL API as Core
Dashboardsynonyms · pinning · analytics

The same search API, with one plugin behind it

No cron, no nightly rebuild, no separate worker to babysit. Indexing runs off Vendure's event bus: when products, variants, assets, collections, or tax data change shape, the plugin picks the event up and writes the corresponding documents in the background. A configurable batch size keeps memory bounded during full reindex jobs, and bufferUpdates lets very large catalogues queue index work and flush on demand instead of hammering the engine on every save.

The storefront keeps the GraphQL search API it already uses on Core. Same query shape, same result envelope, same client. Custom fields you've added to the index surface under customMappings on the result, so storefront code reads them directly without a second round trip.

The dashboard adds the operator surface on top of that same index:

  • Synonym management and result pinning for merchandising control.
  • Manual reindex controls for forced refreshes.
  • Search analytics covering top queries, no-result queries, and click-through patterns.
Three scenarios · one engine
in production
Multi-languageone index per locale
en-USindex · facets
de-DEindex · facets
fr-FRindex · facets
Geo-searchlat / lon ranked
External indexany entity, same engine
Parts
Docs
KB
Orgs
Files
· · ·

What teams are using Advanced Search for in production

The configuration surface that supports each one.

One engine · every surface
Storefront
product search
Admin Cmd+K
global palette
Custom plugins
external index

The same indexing infrastructure, applied wherever you need search

Advanced Search is not only the storefront product search. The ExternalIndex mechanism is a public extension point: define a collection in the engine, hook into Vendure's event bus for updates and removes, and you get a fully managed search surface for any entity in your system.

The Global Search command palette in the Admin Dashboard uses this mechanism to index products, orders, customers, collections, and assets into one unified collection. Custom-entity search in your own plugins uses the same path. One engine, one set of operational concerns.

See the search and discovery category

Trusted by complex B2B commerce and enterprise retail.

FAQ

What engineers ask before they ship on Advanced Search

Questions engineering leads ask when evaluating whether to replace a third-party search vendor or move off SQL LIKE.

Ready when you are

See Advanced Search on your catalogue

Book 60 minutes and we will walk through the search engine, custom mappings, geo-search, and the analytics view on a catalogue close to yours.