Есть несколько способов подойти к этому;
- Использование библиотек, таких как elesticlunr , для автономного поиска, но для этого потребуется создать индекс во время сборки.
К счастью, этого можно добиться с помощью плагина gatsby-plugin -asticlunr-search .
В вашем gatsby-config.js
:
module.exports = {
plugins: [
{
resolve: `@andrew-codes/gatsby-plugin-elasticlunr-search`,
options: {
// Fields to index
fields: [
'title',
'description',
],
// How to resolve each field's value for a supported node type
resolvers: {
// For any node of type MarkdownRemark,
// list how to resolve the fields' values
ContentProduct: {
title: node => node.title,
description: node => node.description,
},
},
},
},
],
};
- Если ваш тип веб-сайта представляет собой электронную документацию, вы можете использовать функцию Algolia docs .
Agolia очистит DOM и автоматически создаст поисковый индекс, и все, что вам осталось сделать, - это создать интерфейс для отображения результатов поиска .
- Используя Algolia, соберите поисковый индекс во время сборки и загрузите его в Algolia и угадайте, что: для этого есть плагин .