问题标签 [lunrjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何为 Markdown MD 文档构建 Lunr 搜索
我需要在我的网站上向我的 MD (Markdown) 文档添加一个好的 lunr 搜索。我正在使用 React/NextJS 站点,我们在博客和常规“文档”区域都有很多 Markdown 文档。我们需要搜索这些文档,以便网站用户可以搜索主题。MD 通过 NextJS 实时呈现,一切正常,但我们需要添加服务器端搜索。出于安全原因,我们必须将用户 UI 限制为仅接收结果,而不是让页面仅搜索客户端/浏览器端。我们还需要在服务器端进行搜索,并且永远不要超出我们的 Intranet,因为这是企业防火墙的情况,并且网站无法使用外部 Internet 上的链接。无论如何,这是场景:
- 在站点构建时构建 lunr 搜索索引(它都是静态的,所以这并不难)
- 使用 API 端点路由对搜索索引进行服务器端搜索。
- 使用 nextJS 客户端作为访问 API 端点以进行搜索和结果的用户交互点。
我知道如何使用 lunr、构建索引、构建 API 路由器端点并渲染到屏幕/页面。但我需要做的是了解如何构建索引和搜索 MD 文档的渲染版本(我猜这将显示为 HTML)。如何为 lunr 索引构建提供以下内容:a) 没有 MD 不可搜索的元信息,或 b) HTML 不可搜索的 HTML 标记。你看到问题了吗?我需要针对用户想要搜索的真实文本构建索引,而不是 Markdown 或 HTML 中的语言标签。是否已经有一个 NPM 包可以做这种事情?
我也想知道如何分解可搜索索引,以便搜索结果看起来不错,带有一点预览,包括每个匹配项的句子,而不仅仅是页面名称..
javascript - Lunr.js 在新页面上显示结果
我有一个由 Lunr.js 提供支持的带有基本单词搜索的小型静态站点。我有一个搜索字段,位于每个 HTML 页面的标题中。我使用的是假 json,因为我不需要 Jekyll
搜索 html
这是 search.js 输出
我希望结果重定向到 search.html 并吐出结果。
search - Jekyll 网站上的 Lunrjs 搜索无法使用 TypeError
更新:虽然我还没有弄清楚这一点,但我找到了一个可行的替代方法:使用 Lunr.js 搜索 | 哲基尔法典
我一直在关注使用 lunr.js 进行Jekyll 搜索的 CloudCannon Academy 教程,但经过多次试验和错误后,我仍然无法正常工作。
当我打开我的默认 Web 浏览器 Microsoft Edge 时,出现以下错误search.js
:
我一直在一步一步地学习教程,所以我基本上从上面链接的网页中复制了所有内容。我不明白的是,我当然已经像教程那样定义了 idx 。通过检查源代码,我已成功检索到所有帖子数据并将它们存储在 JSON 中。我做错了什么?
为了您的信息,我在下面附上了我的代码: