lunr模块添加索引提示 Uncaught TypeError: index.add is not a function

2019-05-12 11:40:00
admin
原创
6425

electron应用中添加了lunr搜索库,但在应用中却提示 Uncaught TypeError: index.add is not a function。如下:

image.png

看了半天代码也没找出哪里出了问题,最后在stackoverflow、github上发现了问题所在,原因是lunr从2.x版本开始做了一些修改变动,并且在官网上也确实找到了相应的说明(抓狂ing……)!

Lunr 0.x/1.x和2.x之间的最大差异是Lunr索引现在是不可变的。一旦构建它们,就无法在索引中添加,更新或删除任何文档。必须在定义功能退出之前添加所有文档。

以前将文档添加到索引将如下所示:

var idx = lunr(function () {
  this.ref('id')
  this.field('text')
})

idx.add({ id: 1, text: 'hello' })

在2.x中,文档在配置函数结束之前添加:

var idx = lunr(function () {
  this.ref('id')
  this.field('text')
  
  this.add({ id: 1, text: 'hello' })
})

官方说明:https://lunrjs.com/guides/upgrading.html

版权声明

版权声明:本站原创文章,转载请注明作者和出处。

本站点采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议