Files
payload/packages/plugin-search
2022-02-19 23:44:02 -05:00
..
2022-02-19 23:44:02 -05:00
2022-02-19 11:02:55 -05:00
2022-02-19 23:44:02 -05:00
2022-02-19 11:02:55 -05:00
2022-02-19 11:02:55 -05:00
2022-02-19 11:02:55 -05:00
2022-02-19 23:44:02 -05:00
2022-02-19 23:44:02 -05:00
2022-02-19 11:02:55 -05:00
2022-02-19 23:44:02 -05:00

Payload Search Plugin

NPM

A plugin for Payload CMS to create extremely fast search results from your existing documents.

Core features:

  • Creates a search collection that:
    • Automatically creates, syncs, and deletes search results related to your documents
    • Serves search results extremely quickly by saving only search-critical data that you define
    • Allows you to sort search results by priority

Installation

  yarn add payload-plugin-search
  # OR
  npm i payload-plugin-search

Basic Usage

In the plugins array of your Payload config, call the plugin with options:

import { buildConfig } from 'payload/config';
import search from 'payload-search';

const config = buildConfig({
  collections: [
    {
      slug: 'pages',
      fields: []
    }
  ],
  plugins: [
    search({
      collections: ['pages'],
      defaultPriorities: {
        pages: 10
      }
    })
  ]
});

export default config;

Options

  • collections

    An array of collections slugs to enable sync-to-search. Enabled collections receive a beforeChange and afterDelete hook that creates, syncs, and deleted the document to its related search document as it changes over time, and also an afterDelete hook that deletes.

  • searchOverrides

    Override anything on the search collection by sending a Payload Collection Config.

    searchPlugin({
      ...
      searchOverrides: {
        slug: 'search-results'
      }
    })
    
    • beforeSync

      An afterChange hook that is called before creating or syncing the document to search. This allows you to modify the data in any way before doing so.

      searchPlugin({
        ...
        beforeSync: (doc) => {
          // Transform your docs in any way here, this can be async
          return doc;
        }
      })
      
    • syncOnlyPublished

      If true, will sync only published documents to search.

    • deleteDrafts

      If true, will delete documents from search that change to draft status.

    TypeScript

    All types can be directly imported:

    import {
      SearchConfig,
     } from 'payload-plugin-search/dist/types';
    

    Screenshots