【发布时间】:2020-07-30 21:32:59
【问题描述】:
我有一个需要搜索组件的 Gatsy-Sanity 项目。为此,我想使用gatsby-plugin-lunr。我遇到了一个问题,我的节点是多语言的。例如,我的一个字段的构造如下:
"title": {
"_type": "localeString",
"nl": "Begin ",
"en": "Home "
},
(简而言之,此解析器类似于以下内容。如果具有以 'locale*' 开头的键 _type,则仅返回键 en 或 nl 的值。这是由 var 传递的)
我可以制作一个拆分/剥离数据的解析器。我已经在从搜索索引运行搜索查询的组件内部进行了这种工作(尚未成功)。但这意味着它会在每次搜索时解析它。有没有办法使用 lunr 插件在 gatsby-node.js 中构建?我也需要这个,因为我需要在结果的 slug/path 上添加一个语言前缀。
const SearchProcess = lunr => builder => {
// how to pre-process data
}
【问题讨论】:
-
您不能在
gatsby-plugin-lunr配置的解析器部分执行此操作吗? -
@ksav,问题是每个节点/文档都是多语言的。所以那里没有条件过滤。
-
我想我正在寻找数据查询/接收之间的钩子或方法之类的东西,并将其写入索引 json。拦截它并改变结果
标签: reactjs graphql gatsby sanity lunrjs