我有一个小的Gatsby应用程序,并且想使用gatsby-plugin-elasticlunr-search为我提供一些基本的搜索功能。不幸的是,所有示例都使用MarkdownRemark将markdown文件中的内容放入Elasticlunr索引中,但是由于种种原因,我使用了每一面的组件。
有没有一种方法可以对graphql渲染的页面进行索引? 如果没有,我可以使用gatsby-source-filesystem来索引页面的源代码(文件中主要是HTML,但是到目前为止我只能检索元数据)?
我在/ src / pages目录中的页面如下:
export const IndexPage = (props) => (
<Layout>
<h1>This is my first page</h1>
</Layout>
)
在我的gatsby-config.js文件中,我试图像这样对源代码建立索引(不起作用-无效的配置文件):
{
resolve: `gatsby-source-filesystem`,
options: {
name: `pages`,
path: `${__dirname}/src/pages`,
}
},{
resolve: `@gatsby-contrib/gatsby-plugin-elasticlunr-search`,
options: {
fields: [`name`, `body`],
resolvers: {
File: {
name: node => node.name,
body: node => node.internal.content // returns always null..
}
},
filter: (node, getNode) => node.sourceInstanceName === `pages`
},