0.0.1 • Published 11 months ago

medusa-plugin-meilisearch-multi_indexes v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

MeiliSearch

*** This is a WIP, and not toroughly tested.

Provide powerful indexing and searching features in your commerce application with MeiliSearch.

MeiliSearch Plugin Documentation | Medusa Website | Medusa Repository

Features

  • Flexible configurations for specifying searchable and retrievable attributes.
  • Ready-integration with Medusa's Next.js starter storefront.
  • Utilize MeiliSearch's powerful search functionalities including typo-tolerance, synonyms, filtering, and more.

Prerequisites


How to Install

1. Run the following command in the directory of the Medusa backend:

npm install medusa-plugin-meilisearch-multi-indexes

2. Set the following environment variables in .env:

MEILISEARCH_HOST=<YOUR_MEILISEARCH_HOST>
MEILISEARCH_API_KEY=<YOUR_MASTER_KEY>

3. In medusa-config.js add the following at the end of the plugins array:

const plugins = [
  // ...
  {
    resolve: `medusa-plugin-meilisearch-multi-indexes`,
    options: {
      config: {
        host: process.env.MEILISEARCH_HOST,
        apiKey: process.env.MEILISEARCH_API_KEY,
      },
      settings: {
        products: {
          indexSettings: {
            searchableAttributes: [
              "title", 
              "description",
              "variant_sku",
            ],
            displayedAttributes: [
              "title", 
              "description", 
              "variant_sku", 
              "thumbnail", 
              "handle",
            ],
          },
          primaryKey: "id",
          transformer: (container, product) => ({
            id: product.id, 
            // other attributes...
          }),
          documents: (container, documents) => ({
            id: product.id, 
            // other attributes...
          })

        },
        other_index: {
          indexSettings: {
            searchableAttributes: [
              "title", 
              "description",
              "variant_sku",
            ],
            displayedAttributes: [
              "title", 
              "description", 
              "variant_sku", 
              "thumbnail", 
              "handle",
            ],
          },
          primaryKey: "id",
          transformer: (container, product) => ({
            id: product.id, 
            // other attributes...
          }),
          documents: (container, documents) => {
            // Here you can use the container or any sources to fetch documents
            // and return the list of documents that will be added to the indexes.
            // You can also transform the documents here if needed - or use the transformer
            // to do so.
          }
        },
      },
    },
  },
]

Test the Plugin

1. Run the following command in the directory of the Medusa backend to run the backend:

npm run start

2. Try searching products either using your storefront or using the Store APIs.


Additional Resources