问题标签 [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.

0 投票
0 回答
38 浏览

javascript - 如何在 JQUERY 中加载带有 Lunr 数据的 JSON 文件?

我根据此处的说明制作了一个带有 Lunr 搜索数据的 JSON 文件。所以它是一个 JSON 文件,其结构类似于{"documents":[{"body":"....

我可以设法在控制台中很好地运行这些命令:

然而,当我的脚本中有同样的东西时,就像这样:

我明白了Cannot read property 'documents' of undefined

.getJSONJQuery的方法有什么遗漏吗?我不是 Javascript 程序员,所以提前抱歉。

这是我在控制台中运行它时的样子:

所以 JSON 有效。只是这在脚本中不起作用。

编辑:

好的,所以这看起来像一个异步问题。我一直在尝试像这样重写它:

但我不认为我知道这个承诺的东西是如何工作的。

0 投票
1 回答
247 浏览

javascript - lunr.js lunr 怎么做分页,分页,或者获取每个页面?

由于 lunr 已经建立了索引,

我想根据任何搜索结果获取前 10 条记录(第 1 页)(搜索什么我可以得到整个数据集作为结果?)

其次,我要获取第 2、10 条记录,偏移量=10,(从 11 开始,下 10 条记录)

等等。

到目前为止,貌似lunr只能搜索关键字。没有内置分页。

0 投票
1 回答
129 浏览

javascript - 正则表达式替换查询参数(++、+- 和 +)中的前导加号字符?

我正在使用lunr.js

下面这个 Javascript 代码

  • 从第一次搜索中获取查询参数
  • 用空格替换绑定 + 字符
  • 将修改后的查询存储在搜索字段中以供下一次搜索
  • 然后它最终使用修改后的查询进行搜索

因此,查询参数字符串可能看起来像test+ABCD+Test++Test2+-Test+-Test+Test,代码用空格替换查询参数中的 + 字符,q以便以一种很好的方式向用户显示结果,但是搜索字符串像

“测试+测试-测试”

目前导致

“测试测试-测试”

我希望

“测试+测试-测试”

我尝试使用 tempQuery 连续多次修改查询

但这不适用于剩余的 + 字符并且感觉不对,所以我需要你的帮助。

它只是归结为使用正确的正则表达式(无论它可能是什么,欢迎提出建议)还是有更好的方法来使用 lunr.js 的查询参数?

0 投票
1 回答
193 浏览

reactjs - Lunr - gatsby-plugin-lunr - 我可以在构建时更改数据/索引吗?

我有一个需要搜索组件的 Gatsy-Sanity 项目。为此,我想使用gatsby-plugin-lunr。我遇到了一个问题,我的节点是多语言的。例如,我的一个字段的构造如下:

(简而言之,此解析器如下所示。如果键_type以 'locale*' 开头,则仅返回键 en 或 nl 的值。这是由 var 传递的)

我可以制作一个拆分/剥离数据的解析器。我在从搜索索引运行搜索查询的组件内部进行了这种工作(尚未成功)。但这意味着它会在每次搜索时解析它。有没有办法在gatsby-node.js使用 lunr 插件构建时做到这一点?我也需要这个,因为我需要在结果的 slug/path 上添加一个语言前缀。

0 投票
1 回答
225 浏览

javascript - 如何使用 w/Lunr.js 在 Jekyll 中打开带有搜索结果的新页面?

我在尝试在标题为results.htmlusing this guide here的新页面中显示搜索结果时遇到了一些麻烦。

似乎它的设置是在进行搜索的页面上显示结果,这不是我想要的。

我想要做的是在 中有一个搜索框index.html,按下包含搜索结果的按钮后会打开一个新页面。

目前,在任何页面上进行的任何搜索都只会在那里显示结果。

_includes/search-lunr.html

_layout/index.html


我唯一能想到的就是在表单中添加一个动作,而不是打开_layout/results.html它真的不会改变任何东西。

任何帮助,将不胜感激。谢谢。

0 投票
0 回答
84 浏览

gatsby - Lunr 索引,包含来自 gatsby-source-plugin 的数据

我正在尝试在我的 gatsby + apollo 项目的构建时添加一个搜索索引。
我尝试关注这篇文章:

我被卡住了,因为在示例中他们使用了集成在 gatsby 启动器中的 MarkdownRemark。但是我想使用从 Apollo 获取的数据(使用 gatsby-source-graphql)。

我需要获取的查询如下所示:

turorial 使用 context.nodeModel 来获取 MarkdownRemark ,它们都是独立的节点。在我的例子中,有 1 个 GraphQLSource 节点(= apollo)和它下面的几个集合(fe:allExampleData)。尝试获取 GraphQLSource 时,我没有看到任何孩子。

我用来获取数据的代码:

这是我看到的变量 apolloNode 的响应:

有什么方法可以基于此获取底层的 allIndustries 吗?还是有另一种方法可以在构建期间将数据推送到lunr?

0 投票
1 回答
212 浏览

javascript - 如何改进我的搜索功能逻辑?使用 Lunr.js

所以我将 Lunr.js 用于我的搜索功能。一切都很好,但当我搜索“上帝”和“教堂”等某些关键字时,我的搜索时间长得令人无法接受。我的意思是,30 秒甚至超过 1 分钟。我确信一定是我使用的逻辑导致了这种情况,至少我认为是这样。我的搜索功能的目的是搜索用户输入并仅返回找到关键字的句子以及书名和找到 searchQuery 的页面。我的目标是有一个可以离线工作的搜索功能。这是一个科尔多瓦项目。我已经评论了所有内容,以便您可以轻松地遵循逻辑。感谢您的时间和投入!

这只是我的“文档”变量中加载的 json 文件的片段。

0 投票
2 回答
521 浏览

javascript - 在打字稿中导入lunr?

Defintely Typed 存储库像这样导入它:

但是,当在 Stackblitz 中像这样使用它时,会出现以下错误:

lunr 不是函数

想法?这是 Stackblitz:

https://stackblitz.com/edit/typescript-lunr-test

0 投票
1 回答
73 浏览

javascript - 当我尝试搜索时,我的 jekyll/github 网站出现错误

我是一名非技术学生,试图为我的项目建立一个网站。我遇到了一个名为beautiful-jekyll 的神奇模板,到目前为止它运行良好。但是,当我尝试根据本教程https://learn.cloudcannon.com/jekyll/jekyll-search-using-lunr-js/实现搜索引擎时,它不起作用,但一直给我错误页面。我的模板代码位于https://github.com/nhatdang1411/nhatdang1411.github.io这是我添加的一些代码,用于根据给定的指令实现搜索栏

很抱歉,因为我是非技术学生,所以我无法提供有关我的代码的更多详细信息。如果您可以在我的 github 页面上查看我的代码并给我一些解决此问题的建议,这对我来说意味着世界。我的搜索框位于 nhatdang1411.github.io

0 投票
0 回答
135 浏览

javascript - 如何在 HTML 页面上添加 lunr(或 elasticlunr)搜索?

我一直在尝试制作一个在 JSON 文档中搜索答案的离线 HTML 常见问题解答页面,但我不知道如何让它工作。

我尝试的主要事情是从网站https://olivernn.github.io/moonwalkers/上的 lunr 示例下载 HTML 和 JS

问题似乎是文本和索引被硬编码到 JS 文档中(第 176-182 行),所以即使我在 HTML 文件中编辑文本,它也会在我单击搜索时重置为原始文本。它不会重建索引。

我的问题:

更改 HTML 后如何修改 HTML 和/或 JS 文件以重建索引?

为什么只有一个 index.js 文件而不是一个单独的 lunr.js,然后 index.js 只用于索引数据?

如何更改它以使其读取包含数据的单独 JSON 文件?

.

.

PS如果让网站上的示例工作太难(看起来很复杂),有人可以告诉我一个工作准系统lunr搜索吗?

只是一个超级简单的 HTML 文本框,带有一个从 JSON 文件构建索引并显示结果的按钮。如果我能看到一个可行的例子,我想我可以从那里弄清楚。

提前致谢!