@medusajs/search
v2.22.7
Published
Medusa Search module
Keywords
Readme
Search Module for Medusa: manages search indexes, their versions, and their sync history, and serves full-text search with filtering, sorting, and faceting through pluggable search providers. Use it to make products or other entities searchable in the storefront or admin. It ships with @medusajs/medusa and is registered by default with the PostgreSQL provider, so Medusa applications don't install it directly.
At a glance
| | |
| --- | --- |
| Package | @medusajs/search |
| Type | Infrastructure Module |
| Module key | Modules.SEARCH ("search") |
| Registered by default | Yes, with the search-postgres provider |
| Import from | @medusajs/medusa/search |
Features
- Declare search indexes in
src/searchwithdefineSearchIndexfrom@medusajs/framework/utils. - Create, migrate, and fill indexes, and keep them up to date from events.
- Register more than one provider and point each index at a different engine.
- Registers the Medusa Search provider (
search-medusa) automatically when Medusa Cloud search credentials are configured.
Search providers
The module delegates indexing and querying to Search Module Providers, registered through the providers option.
Official providers in this repository:
@medusajs/search-postgres(PostgreSQL, backed bytsvectorandpg_trgm)
Installation
No installation needed. The module is included in @medusajs/medusa and registered by default.
Usage
To change the default configuration, register the module in medusa-config.ts:
import { defineConfig } from "@medusajs/framework/utils"
module.exports = defineConfig({
// ...
modules: [
{
resolve: "@medusajs/medusa/search",
options: {
providers: [
{
resolve: "@medusajs/medusa/search-postgres",
id: "search-postgres",
},
],
},
},
],
})Configuration
| Option | Type | Description | Default |
| --- | --- | --- | --- |
| providers | { resolve: string, id: string, options?: Record<string, unknown> }[] | Search Module Providers to register. | The PostgreSQL provider |
| default_provider | string | Identifier of the provider for indexes that don't name one, such as search-postgres. Required when more than one provider is registered. | The only registered provider |
| index_prefix | string | Prefix added to every physical index name, for search engines shared by multiple applications. | - |
| reindex.batch_size | number | Documents written to the engine per request while filling an index. | 100 |
