【问题标题】:limit search results in fuse.js vue在 fuse.js vue 中限制搜索结果
【发布时间】:2019-08-25 14:17:06
【问题描述】:

我已经使用本指南实现了 fuse.js: https://fusejs.io/ 和代码:

const Fuse = require("fuse.js");
  var fuse = new Fuse(this.$store.state.vendorProducts, options); 
  var result = fuse.search(this.itemTitle);

结果变量包括搜索操作的所有结果。
我只想要结果的前 20 个结果。我可以对结果数组进行切片,但它太慢了,因为它加载了所有数据。
如何限制搜索结果,例如前 20 个项目?

【问题讨论】:

  • 如果 api 不支持限制结果,您可以做的最简单的事情是 result.slice(0,20)
  • @CodeManiac 感谢您的回答,如果我使用切片,它将在所有数据加载后切片。我只想搜索前 20 个项目。

标签: javascript vue.js fuse.js


【解决方案1】:

Fuse 搜索有搜索 SearchOpts,它只有参数 limit 所以

const Fuse = require("fuse.js");
  var fuse = new Fuse(this.$store.state.vendorProducts, options); 
  var result = fuse.search(this.itemTitle, {limit: 20});

通过查看源代码发现了此功能。

【讨论】:

  • 至少在 Fuse.js 4.00 中,limit 选项只是实现为最终结果列表的slice。所以它并没有更快。
猜你喜欢
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
相关资源
最近更新 更多