我有一个使用Contentful的Gatsby项目。一切都很好 - 例如我可以检索博客并显示它们。
但是,如果我想提供一个搜索工具来搜索可能的1000个帖子并显示相关结果 - 我该怎么做?
我甚至不确定如何开始这个 - 大概是“结果页面”将是一个不同的路线,因为当前路线已经被解析为静态文件 - 但我不知道如果Gatsby已经有路由,我将如何路由这个。
有人为此获得了入门模板吗?有一个会很好!
谢谢
几乎没有办法解决这个问题;
幸运的是,它可以使用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,
},
},
},
},
],
};
Agolia将自动抓取DOM并自动构建搜索索引,您要做的就是:构建一个界面来渲染search results。