在lunr.js中,您可以使用该.ref()
方法添加唯一引用,但我找不到任何方法来添加有关该特定记录的额外数据/信息.这是不可能的,还是我错过了一些非常明显的东西.
我甚至尝试将对象分配给ref,但它将其保存为字符串.
编辑
现在我将所有内容保存为JSON字符串.ref()
,这可以使用,但是真的很难使用.
我正在尝试创建一个lunr索引,并且能够在分配后为其添加文档.这是我正在尝试做的略微简化的版本:
var documents = [{
'id': '1',
'content': 'hello'
}, {
'id': '2',
'content': 'world'
}, {
'id': '3',
'content': '!'
}];
var idx = lunr(function() {
this.ref('id');
this.field('content');
});
for (var i = 0; i < documents.length; ++i) {
idx.add(documents[i]);
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:TypeError:idx.add不是一个函数.我已经看过多个教程,说这是你应该怎么做的.
如果我在分配idx时添加文件,它只适用于我;
var documents = [{
'id': '1',
'content': 'hello'
}, {
'id': '2',
'content': 'world'
}, {
'id': '3',
'content': '!'
}];
var idx = lunr(function() {
this.ref('id');
this.field('content');
for (var i = 0; i …
Run Code Online (Sandbox Code Playgroud)Lunr 在查找大多数结果方面做得很好,但我不明白为什么它不会返回包含在 JSON 数组中的多字字符串。
这是一个示例 JSON 文件,用于了解我的数据的结构:
[{
"title": "Rolling Loud",
"date": "May 5–7",
"location": "Miami, FL, USA",
"rock-artists": [],
"hh-artists": ["Kendrick Lamar", "Future"],
"electronic-artists": [],
"other-artists": []
}]
Run Code Online (Sandbox Code Playgroud)
当我搜索“Miami”和“Future”时,lunr 返回了节日。但是,在搜索“Kendrick”或“Kendrick Lamar”时,lunr 不会返回节日。
相关代码:
// initialize lunr
var idx = lunr(function () {
this.field('id');
this.field('title', { boost: 3 });
this.field('date');
this.field('location');
this.field('rockArtists', { boost: 3 });
this.field('hhArtists', { boost: 3 });
this.field('electronicArtists', { boost: 3 });
this.field('otherArtists', { boost: 3 });
// add festivals to lunr
for (var key in …
Run Code Online (Sandbox Code Playgroud)