【问题标题】:Lunr - gatsby-plugin-lunr - Can I alter data / index on build?Lunr - gatsby-plugin-lunr - 我可以在构建时更改数据/索引吗?
【发布时间】: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


【解决方案1】:

我将使用不同的 gatsby 插件。 gatsby-plugin-local-search 这个插件能够在使用normalizer 保存之前更改数据现在我可以调用一个方法来有条件地更改每种语言的数据。

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 2020-04-14
    • 2019-10-05
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    相关资源
    最近更新 更多