我正在尝试创建一个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]);
}
这给了我以下错误:TypeError:idx.add不是一个函数。
我看过多个tutorials,这就是您应该能够做到的方式。
尽管仅当我在分配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 < documents.length; ++i) {
this.add(documents[i]);
}
});
我仍然是javascript noob,因此可能不一定与lunr相关。
最佳答案
您链接到的教程适用于旧版本的Lunr。最新版本要求您将所有文档添加到传递给lunr
函数的函数中的索引中。换句话说,您的第二个示例对于最新版本的Lunr是正确的。
升级到最新版本时有一个guide,希望可以涵盖该教程(和其他教程)中的旧版本与最新版本之间的区别。