Gatsby内容丰富的搜索

问题描述 投票:3回答:1

我有一个使用Contentful的Gatsby项目。一切都很好 - 例如我可以检索博客并显示它们。

但是,如果我想提供一个搜索工具来搜索可能的1000个帖子并显示相关结果 - 我该怎么做?

我甚至不确定如何开始这个 - 大概是“结果页面”将是一个不同的路线,因为当前路线已经被解析为静态文件 - 但我不知道如果Gatsby已经有路由,我将如何路由这个。

有人为此获得了入门模板吗?有一个会很好!

谢谢

gatsby contentful
1个回答
4
投票

几乎没有办法解决这个问题;

  1. 使用像elesticlunr这样的库进行离线搜索,但它需要您在构建时创建索引。

幸运的是,它可以使用gatsby-plugin-elasticlunr-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,
                    },
                },
            },
        },
    ],
};
  1. 如果您的网站类型是在线文档,则可以使用Algolia docs功能。

Agolia将自动抓取DOM并自动构建搜索索引,您要做的就是:构建一个界面来渲染search results

  1. 使用Algolia并在构建时收集搜索索引并将其上传到Algolia并猜测:有plugin
© www.soinside.com 2019 - 2024. All rights reserved.