Payload Search Plugin
A plugin for Payload CMS to create extremely fast search results from your existing documents.
Core features:
- Creates a
searchcollection 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
-
collectionsAn array of collections slugs to enable sync-to-search. Enabled collections receive a
beforeChangeandafterDeletehook that creates, syncs, and deleted the document to its related search document as it changes over time, and also anafterDeletehook that deletes. -
searchOverridesOverride anything on the search collection by sending a Payload Collection Config.
searchPlugin({ ... searchOverrides: { slug: 'search-results' } })-
beforeSyncAn 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; } }) -
syncOnlyPublishedIf true, will sync only published documents to search.
-
deleteDraftsIf 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
-